我有一个代码:
using (var adapter = Db.Connection.Command(query).NewDataAdapter())
{
adapter.Fill(initialDataSet);
}
其中NewDataAdapter()
返回SqlDataAdapter
的新实例。
我如何强制它使用DataTable
中的数据类型(DataSet
代替System.Data.SqlTypes
)在System.Data.SqlTypes.SqlGuid
中创建System.Guid
?
我运行了以下测试:
static void Main()
{
var table = new DataTable();
var column1 = table.Columns.Add("Column1", typeof(SqlInt32));
var column2 = table.Columns.Add("Column2", typeof(Int32));
Console.WriteLine($"Column1: {column1.DataType.FullName}");
Console.WriteLine($"Column2: {column2.DataType.FullName}");
var row = table.NewRow();
Console.WriteLine($"row[column1]: {row["Column1"]}, {row["Column1"].GetType().FullName}");
Console.WriteLine($"row[column2]: {row["Column2"]}, {row["Column2"].GetType().FullName}");
Console.ReadKey();
}
得到以下结果:
Column1: System.Data.SqlTypes.SqlInt32
Column2: System.Int32
row[column1]: Null, System.Data.SqlTypes.SqlInt32
row[column2]: , System.DBNull
它表明DataTable可以存储CLR类型和SqlTypes。