【发布时间】:2014-08-20 23:14:09
【问题描述】:
您好,我有以下代码列出了给定 SQL 表的所有列名:
public static DataTable GetSQLTableSchema(string _connectionString,string _tableName)
{
string connectionString = _connectionString;
string tableName = _tableName.Trim();
DataTable schemaTable = new DataTable();
SqlDataReader sqlDataReader;
try {
using (SqlConnection connection = new SqlConnection(connectionString))
{
string queryString = "SELECT * FROM " + tableName;
using(SqlCommand queryCMD = new SqlCommand(queryString))
{
queryCMD.Connection = connection;
connection.Open();
sqlDataReader = queryCMD.ExecuteReader(CommandBehavior.KeyInfo);
schemaTable = sqlDataReader.GetSchemaTable();
connection.Close();
}
}
}catch(Exception ex)
{
Console.WriteLine(ex);
}
#region Print Table Schema
foreach(DataRow field in schemaTable.Rows)
{
foreach(DataColumn property in schemaTable.Columns)
{
Console.WriteLine("{0} - {1}",field[0],//HERE!);
}
}
#endregion
return schemaTable;
}
在我标记的行 (HERE!) 我想打印列的名称和一个布尔值是否是 allow NULL。但我从现场得到的只是itemarray[]。我确信数组包含的值之一显示了allow NULL 值。我不知道它是哪一个。另外我觉得一定有更优雅的方式。
【问题讨论】:
标签: c# sql sql-server schema