try
qlConnection cn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
DataTable schemaTable; 
SqlDataReader myReader; 
 
cn.ConnectionString = @"Data Source=(local);User ID=sa;Password=;Initial Catalog=Northwind";
cn.Open();cmd.Connection = cn;
cmd.CommandText = "SELECT * FROM [Order Details]";
myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo);schemaTable = myReader.GetSchemaTable();foreach (DataRow myField in schemaTable.Rows)
{
     
  Console.WriteLine("{0}; {1}, {2}, {3}", myField["COLUMNNAME"], myReader.GetDataTypeName( myReader.GetOrdinal(myField["COLUMNNAME"].ToString())),
myField["COLUMNSIZE"], myField["ALLOWDBNULL"]);
}myReader.Close();
cn.Close();

解决方案 »

  1.   

    sorry, typo:qlConnection cn = new SqlConnection();
    ==>
    SqlConnection cn = new SqlConnection();
      

  2.   

    DataColumn 对象只包含精度,没有domain的概念。我与微软的技术支持交流了一下,微软已经把此标记为bug。
      

  3.   

    我想在SQL server 2000中取得数据表中字段的名称,类型,长度,描述,默认值,不知改如何取得?
      

  4.   

    foreach (DataRow myField in schemaTable.Rows)
    {
      foreach (DataColumn dc in schemaTable.Columns)
         Console.Write("\t{0}:{1}\n",dc.ColumnName, myField[dc]);  Console.WriteLine();
    }