日期:2014-05-17  浏览次数:20829 次

请问,这个DataColumn为什么信息不正确?
string strConn = "server = '(local)';database=Person;integrated security = true";
string strSQL = "SELECT 姓名,年龄,住址 FROM 客户表";
SqlConnection conn = new SqlConnection(strConn);
SqlCommand cmd = new SqlCommand(strSQL,conn);
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
DataTable db1 = rdr.GetSchemaTable();
rdr.Close();
conn.Close();
foreach (DataColumn col in db1.Columns)
 {
  Console.WriteLine("{0},{1},{2},{3},{4}",col.ColumnName,col.DataType,col.AllowDBNull,col.AutoIncrement, col.ReadOnly);  
 }
Console.ReadKey();


问题:
上面的代码用SqlDataReader获取数据,调用GetSchemaTable方法,创建一个DataTable ,可是,为什么结果不对呢?应该只有3列,为什么输出31列,而且信息耶不正确?

------解决方案--------------------
GetSchemaTable 返回有关表中每一列的元数据的顺序
不是你要选择的东西,而是一个结构表