我有一个来自SQL请求的数据表。虽然我真的在使用OLEDB工作,但即使我从我的SQL服务器获取表格,我也遇到了同样的问题。C# - 如何判断DataColumn是否支持空值?
如果我填充数据表,然后查询DataColumns - 他们都说AllowDBNull == true和allowNull == true。但是如果我看看SSMS中的表格,那就说明了。
string selectStmt= "Select * from foobar; "
DataSet NewData = new DataSet();
using (SqlConnection DataConn = new SqlConnection(MyConnectionString))
{
SqlDataAdapter DataAdapter = new SqlDataAdapter(selectStmt, DataConn);
var Results = DataAdapter.Fill(NewData, tableName);
}
DataColumn Col = NewData.Tables[0].Columns[0];
// Col.AllowDBNull is always true as is Col.AllowNull
我也似乎无法弄清楚在哪里得到一个字符串字段的长度。
这使得在尝试上传数据之前实现一些简单的客户端错误检查有点困难。
如果我只是处理基于SQL Server的表,我可以使用Microsoft.SqlServer.Management.Sdk和Microsoft.SqlServer.Management.Smo。由于我不是,那已经结束了。
要说清楚的是,当你说“但是如果我在MS SQL SMS中查看表格时,它会指出其他情况”,你说列的SQL不允许NULL('NOT NULL')服务器定义? – DWright
是的 - SQL定义清楚地表明,有些是有的,有些则不是 - 但是当查看数据表列时,每列都说明支持空值。 – JustMeToo