1
我們使用System.Data.SqlClient
下的類連接到Azure SQL數據庫。我們通過執行查詢(或存儲過程)來處理數據類型,然後在生成的IDataReader
對象上執行如下所示的一些操作。使用.Net SqlClient連接到SQL Azure DB,是否有可能爲schema中的數據類型獲取DBNull對象?
var schema = reader.GetSchemaTable();
for (int i = 0; i < schema.Rows.Count; i++)
{
Type type = (Type) schema.Rows[i]["DataType"];
// do something for the type
}
該代碼執行鍼對我們用戶的數據庫,併爲其中之一,我們得到以下錯誤:
System.InvalidCastException
Unable to cast object of type 'System.DBNull' to type 'System.Type'.
由於我們不要輕易進入用戶的數據庫服務器,我們在重現這個錯誤方面有困難。我已經嘗試了所有可用的數據類型,可以使用它們在SQL Azure中創建表,但它們都可以映射到C#中的某些Type
。所以,現在我很困惑,對於SQL Azure中的哪種數據庫表,我會得到一個System.DBNull
的對象,用於模式表的數據類型?
任何想法?謝謝。
我們嘗試了一些東西,但無法重現這一點。你還在看到這個問題嗎?你有它的repro嗎? –
@JanEngelsberg是的,我們已經解決了問題,您可能會在下面看到我的答案。 – weidi