C# - 如何判断 DataColumn 是否支持空值?

Jus*_*Too 5 c# sql datatable datacolumn

我有一个来自 SQL 请求的数据表。虽然我确实在使用 OLEDB 处理一个表,但即使我从我的 SQL 服务器获取该表,我也遇到了同样的问题。

如果我填充数据表然后查询数据列 - 他们都说 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
Run Code Online (Sandbox Code Playgroud)

我似乎也无法弄清楚从哪里获取字符串字段的长度。

这使得在我尝试上传数据之前实现一些简单的客户端错误检查有点困难。

如果我只处理基于 SQL 服务器的表,我可以使用 Microsoft.SqlServer.Management.Sdk 和 Microsoft.SqlServer.Management.Smo。既然我不是,那就完了。

DWr*_*ght 3

尝试

var Results = DataAdapter.FillSchema(NewData, SchemaType.Source, tableName);
Run Code Online (Sandbox Code Playgroud)

看看这是否为您提供了所需的架构详细程度。