从数据库读取数据

概述

您可以使用 Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader 从数据库中检索只读且仅向前的数据流。 使用 Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader 可以提高应用程序性能并减少系统资源开销,因为每次只有一行在内存中。

创建对象的实例Microsoft.HostIntegration.MsDb2Client.MsDb2Command后,可以通过调用Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader从数据源检索行来创建对象Microsoft.HostIntegration.MsDb2Client.MsDb2Command.ExecuteReader%2A

可以使用 Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader.Read%2A?displayProperty=fullName 从查询结果中获取一行。 通过将列的名称或序号传递给 Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader,可以访问已返回的行中的每一列。 但是,为了获得最佳性能, Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader 提供了一系列方法,使你能够访问其本机数据类型中的列值。 已知基础数据类型时使用类型化访问器方法可减少检索列值时所需的类型转换量。

Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader 还提供非缓冲区数据流,使过程逻辑能够有效地处理数据源的结果。 Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader 检索大量数据时,这是一个不错的选择,因为数据未缓存在内存中。

完成Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader后,请务必调用方法Close。 此外,Microsoft.HostIntegration.MsDb2Client.MsDb2Command 的输出参数和返回值在 Microsoft.HostIntegration.MsDb2Client.MsDb2DataReader 关闭之前是不可用的。

注释

分布式关系数据体系结构(DRDA)使用“.”作为小数点和“,”来分隔数值。 如果你使用的语言(如德语)使用“,”作为小数点,则从数据库中检索数据时可能会收到错误。 若要避免此错误,在调用System.Globalization.CultureInfo.InvariantCultureToString方法时使用Parse

示例

以下示例演示如何通过读取 SELECT 语句中的行来从 DB2 数据库获取数据:

Public void ReadMyData(string myConnString)   
{  
   string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";  
   MsDb2Connection myConnection = new MsDb2Connection(myConnString);  
   MsDb2Command myCommand = new MsDb2Command(mySelectQuery,myConnection);  
   myConnection.Open();  
   MsDb2DataReader myReader;  
   myReader = myCommand.ExecuteReader();  
   // Always call Read before accessing data.  
   While (myReader.Read())  
   {  
       Console.WriteLine(myReader.GetInt32(0) + ", "  
       + myReader.GetString(1));  
   }  
   // Always close when done reading.  
   myReader.Close();  
   // Close the connection when done.  
   myConnection.Close();  
}  
  

另请参阅

使用 DB2 的托管提供程序
DB2 托管提供程序程序员指南