C# 如何检查SQL模式是否允许列为NULL?
您好,我有以下代码,其中列出了给定SQL表的所有列名:C# 如何检查SQL模式是否允许列为NULL?,c#,sql,sql-server,schema,C#,Sql,Sql Server,Schema,您好,我有以下代码,其中列出了给定SQL表的所有列名: public static DataTable GetSQLTableSchema(string _connectionString,string _tableName) { string connectionString = _connectionString; string tableName = _tableName.Trim(); DataTa
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;
}
在我标记的行(这里!)处,我想打印列的名称和一个布尔值,无论它是否为
允许NULL
。但我从字段中得到的只是一个itemarray[]
。我确信数组包含的其中一个值显示了allow NULL
值。我想不出是哪一个。此外,我认为必须有一种更优雅的方式。DataColumn有一个AllowDBNull
属性
假设有问题的ODBC驱动程序正确地返回模式表,这将为您提供所需的信息。DataColumn有一个
AllowDBNull
属性
SELECT column_name, is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = ?
假设有问题的ODBC驱动程序正确地返回模式表,这将为您提供所需的信息。DataColumn有一个
AllowDBNull
属性
SELECT column_name, is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = ?
假设有问题的ODBC驱动程序正确地返回模式表,这将为您提供所需的信息。DataColumn有一个
AllowDBNull
属性
SELECT column_name, is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = ?
假设有问题的ODBC驱动程序正在正确返回模式表,这将为您提供所需信息。您可以执行以下操作:
SELECT column_name, is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = ?
Console.WriteLine(property.ColumnName +" = "+ field[property].ToString());
:
获取或设置一个值,该值指示此列中属于该表的行是否允许空值
你可以做:
Console.WriteLine(property.ColumnName +" = "+ field[property].ToString());
:
获取或设置一个值,该值指示此列中属于该表的行是否允许空值
你可以做:
Console.WriteLine(property.ColumnName +" = "+ field[property].ToString());
:
获取或设置一个值,该值指示此列中属于该表的行是否允许空值
你可以做:
Console.WriteLine(property.ColumnName +" = "+ field[property].ToString());
:
获取或设置一个值,该值指示此列中属于该表的行是否允许空值
我的SQL表中的第一列是ID,它不允许NULL。当使用您的解决方案时,控制台为表中的每一列打印ID-true!所以我找到了我一直在寻找的解决方案,它看起来如下:Console.WriteLine(property.ColumnName+“=”+field[property].ToString());:请修改您的帖子,我会将其标记为awnser。@bodycountPP已更新,但不确定如何检查空值?它至少告诉我在哪里查找AllowDBNULL值。谢谢我的SQL表中的第一列是ID,它不允许NULL。当使用您的解决方案时,控制台为表中的每一列打印ID-true!所以我找到了我一直在寻找的解决方案,它看起来如下:Console.WriteLine(property.ColumnName+“=”+field[property].ToString());:请修改您的帖子,我会将其标记为awnser。@bodycountPP已更新,但不确定如何检查空值?它至少告诉我在哪里查找AllowDBNULL值。谢谢我的SQL表中的第一列是ID,它不允许NULL。当使用您的解决方案时,控制台为表中的每一列打印ID-true!所以我找到了我一直在寻找的解决方案,它看起来如下:Console.WriteLine(property.ColumnName+“=”+field[property].ToString());:请修改您的帖子,我会将其标记为awnser。@bodycountPP已更新,但不确定如何检查空值?它至少告诉我在哪里查找AllowDBNULL值。谢谢我的SQL表中的第一列是ID,它不允许NULL。当使用您的解决方案时,控制台为表中的每一列打印ID-true!所以我找到了我一直在寻找的解决方案,它看起来如下:Console.WriteLine(property.ColumnName+“=”+field[property].ToString());:请修改您的帖子,我会将其标记为awnser。@bodycountPP已更新,但不确定如何检查空值?它至少告诉我在哪里查找AllowDBNULL值。非常感谢。