如何发现 DataColumn 的底层数据类型是 xml

use*_*808 4 c# xml sql-server datatable sqldataadapter

我有一个包含 xml 列的 SQL Server 数据表。我使用DataTable(类的Fill方法SqlDataAdapter)运行选择查询。执行后,列的类型为string

我想知道我怎么能确定实际的SQL Server数据类型(在这种情况下xml),从DataTable物化由Fill方法。

我不能使用SqlDataReader(它具有GetSchemaTable返回 SQL Server 数据类型信息的方法) - 我必须使用SqlDataAdapter/DataTable. 做类似的事情:

DataTableReader reader = new DataTableReader(table);
DataTable schemaTable = reader.GetSchemaTable();
Run Code Online (Sandbox Code Playgroud)

也没有帮助,因为它似乎也不包含 SQL Server 数据类型信息。

sgm*_*ore 5

SqlDataAdapter调用者有一个属性ReturnProviderSpecificTypes,如果您将此设置为 true,则GetSchemaTable()应该告诉您该列是typeof(SqlXml)而不是typeof(string)