2012-05-25 26 views
4

我有一個SQL Server數據表,它具有一個xml列。我使用DataTableFill類的SqlDataAdapter類)運行選擇查詢。執行後,該列的類型爲string如何發現DataColumn的基礎數據類型是xml

我在想如何才能從DataTable確定實際的SQL Server數據類型(在這種情況下爲xmlFill方法實現。

我不能使用SqlDataReader(它有GetSchemaTable方法返回SQL Server數據類型信息) - 我必須使用SqlDataAdapter/DataTable。做類似:

DataTableReader reader = new DataTableReader(table); 
DataTable schemaTable = reader.GetSchemaTable(); 

也沒有幫助,因爲它也似乎不包含SQL Server數據類型信息。

+0

你總是可以在SQL Server目錄視圖「考察」列的數據類型通過執行如下所示:'SELECT user_type_id FROM sys.columns WHERE object_id = OBJECT_ID('Person.Person')'。如果該值爲'241' - 它是SQL Server數據類型'XML'的一列(這些類型在'sys.types'中定義) –

+0

這意味着我必須發出另一個查詢。任何方式不去sql,但依靠獲得的數據表?另外,我可能正在執行一個存儲過程,該過程返回數據並且不知道它屬於哪個表/模式 – user1417808

回答

3

有一個叫ReturnProviderSpecificTypesSqlDataAdapter一個屬性,如果你設置這個屬實,那麼GetSchemaTable()應該告訴你該列typeof(SqlXml)而非typeof(string)

相關問題