如何从ADO.NET DataReader中获取架构信息

开发 后端
这里详细的介绍了使用ADO.NET DataReader编写架构信息的两种方案,代码分为VisualBasic和C#两种,希望对大家有帮助。

ADO.NET还是比较常用的,于是我研究了一下ADO.NET DataReader,在这里拿出来和大家分享一下,希望对大家有用。ADO.NET向编写托管代码的开发人员提供类似于 ActiveX 数据对象 (ADO) 向本机组件对象模型 (COM) 开发人员提供的功能。建议您在 .NET 应用程序中使用 ADO.NET 而不使用 ADO 来访问数据。如果返回的是多个结果集,ADO.NET DataReader会提供NextResult方法来按顺序循环访问这些结果集。以下示例显示SqlDataReader如何使用ExecuteReader方法处理两个SELECT语句的结果。

从DataReader中获取架构信息

#T#当ADO.NET DataReader打开时,可以使用GetSchemaTable方法检索有关当前结果集的架构信息。GetSchemaTable将返回一个填充了行和列的DataTable对象,这些行和列包含当前结果集的架构信息。对于结果集的每一列,DataTable都包含一行。架构表行的每一列都映射到在结果集中返回的列的属性,其中ColumnName是属性的名称,而列的值为属性的值。以下代码示例为DataReader编写架构信息。

VisualBasic

  1. PrivateSubGetSchemaInfo(ByValconnectionAsSqlConnection)  
  2. Usingconnection  
  3. DimcommandAsSqlCommand=NewSqlCommand(_  
  4. "SELECTCategoryID,CategoryNameFROMCategories;",_  
  5. connection)  
  6. connection.Open()  
  7.  
  8. DimreaderAsSqlDataReader=command.ExecuteReader()  
  9. DimschemaTableAsDataTable=reader.GetSchemaTable()  
  10.  
  11. DimrowAsDataRow  
  12. DimcolumnAsDataColumn  
  13.  
  14. ForEachrowInschemaTable.Rows  
  15. ForEachcolumnInschemaTable.Columns  
  16. Console.WriteLine(String.Format("{0}={1}",_  
  17. column.ColumnName,row(column)))  
  18. Next  
  19. Console.WriteLine()  
  20. Next  
  21. reader.Close()  
  22. EndUsing  
  23. EndSub  

C#

  1. staticvoidGetSchemaInfo(SqlConnectionconnection)  
  2. {  
  3. using(connection)  
  4. {  
  5. SqlCommandcommand=newSqlCommand(  
  6. "SELECTCategoryID,CategoryNameFROMCategories;",  
  7. connection);  
  8. connection.Open();  
  9.  
  10. SqlDataReaderreader=command.ExecuteReader();  
  11. DataTableschemaTable=reader.GetSchemaTable();  
  12.  
  13. foreach(DataRowrowinschemaTable.Rows)  
  14. {  
  15. foreach(DataColumncolumninschemaTable.Columns)  
  16. {  
  17. Console.WriteLine(String.Format("{0}={1}",  
  18. column.ColumnName,row[column]));  
  19. }  
  20. }  
  21. }  
责任编辑:田树 来源: 博客
相关推荐

2009-11-04 12:45:33

ADO.NET Dat

2009-10-29 11:08:20

ADO.NET Dat

2009-11-13 10:31:07

ADO.NET Dat

2009-11-11 10:06:12

ADO.NET设计

2009-11-11 10:01:56

ADO.NET程序设计

2009-12-28 15:11:36

ADO.NET专家

2009-11-12 11:17:13

2011-05-20 11:31:07

ADO.NET

2009-12-31 13:41:39

ADO.NET架构

2009-11-03 16:37:10

2009-11-11 11:19:57

ADO.NET使用

2009-12-22 09:36:29

ADO.NET代码

2009-12-24 11:12:29

ADO.Net技术

2009-09-14 13:37:25

LINQ ADO.NE

2009-12-24 11:19:07

ADO.NET的架构

2010-05-06 08:55:23

ADO.NET

2009-02-02 10:00:11

ADO.NETASP.NET

2009-12-31 14:46:29

ADO.NET Ent

2009-11-12 14:03:03

ADO.NET数据集约

2010-01-04 10:48:30

ADO.NET特色
点赞
收藏

51CTO技术栈公众号