我有一个SQL Server数据表,其中包含一个xml列。我使用 DataTable
(SqlDataAdapter
类的Fill
方法)运行选择查询。执行后,列的类型为 string
。
我想知道如何从Fill
方法实现的DataTable
中确定实际的SQL Server数据类型(在本例中为xml
)。
我不能使用SqlDataReader
(它有GetSchemaTable
返回SQL Server数据类型信息的方法) - 我必须使用SqlDataAdapter/DataTable
。执行以下操作:
DataTableReader reader = new DataTableReader(table);
DataTable schemaTable = reader.GetSchemaTable();
也没有帮助,因为它似乎也不包含 SQL Server 数据类型信息。
SqlDataAdapter
上有一个名为 ReturnProviderSpecificTypes
的属性,如果您将其设置为 true,那么GetSchemaTable()
应该告诉您该列是typeof(SqlXml)
而不是typeof(string)