我有一個來自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