使用System.Data.SqlTypes通过SqlDataAdapter初始化DataTable

时间:2017-03-09 00:20:47

标签: c# .net sql-server ado.net

我有一个代码:

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。

0 个答案:

没有答案