今天用到了IDataReader.GetSchemaTable,所以就做个记录:
1、IDataReader.GetSchemaTable :
功能:返回一个 DataTable,它描述 IDataReader 的列元数据。
使用IDataReader.GetSchemaTable的代码:
OracleConnection conn = new OracleConnection(@"Data Source=102his;
Persist Security Info=True;User ID=his;Password=his;Unicode=True");
conn.Open();
OracleCommand cmd = new OracleCommand("Select * From sbas_TreatyCompany", conn);
IDataReader reader = cmd.ExecuteReader();
DataTable dt = reader.GetSchemaTable();
conn.Close();
this.dgvShowData.DataSource = dt;
Persist Security Info=True;User ID=his;Password=his;Unicode=True");
conn.Open();
OracleCommand cmd = new OracleCommand("Select * From sbas_TreatyCompany", conn);
IDataReader reader = cmd.ExecuteReader();
DataTable dt = reader.GetSchemaTable();
conn.Close();
this.dgvShowData.DataSource = dt;
结果:
由此可以看出,IDataReader.GetSchemaTable返回的datatable是固定框架,每一列的列名都是固定的。而每一行则是数据库实体表的列。这个函数可以动态获取数据库表结构,比如表的主键,每一列的类型等信息。
本文转自贺满博客园博客,原文链接:http://www.cnblogs.com/puresoul/archive/2010/06/29/1767333.html,如需转载请自行联系原作者。