从SQL创建DataTable架构

时间:2017-07-04 08:08:35

标签: c# sql datatable dataadapter

我想使用带有数据表的dataadapter将数千条记录插入到30列的sql表中。

SqlDataAdapter adapter = new SqlDataAdapter();
DataTable table = new DataTable();
adapter.InsertCommand = new SqlCommand("INSERT INTO ...");
adapter.UpdateBatchSize = 1000;
DataRow r = null;
foreach(var entry in list) 
{
    r = table.NewRow();
    r["lastchange"] = entry.TryGet("LastChangeTime"); 
    // <- throws System.ArgumentException: Column does not belong to table
    ...
}

有没有办法不手动定义数据表的模式,但要从表中读取插入应该在?

2 个答案:

答案 0 :(得分:1)

定义SelectCommand并应用Fill方法首先获取数据。如果只需要表模式,只需进行不返回任何行的查询。

SqlDataAdapter adapter = new SqlDataAdapter();
DataTable table = new DataTable();
adapter.SelectCommand = new SqlCommand("SELECT * FROM myTable WHERE 1=2");
adapter.Fill(table);

答案 1 :(得分:0)

您可以在项目中创建/定义数据集,并可以在您需要的任何后续操作中使用它。

查看下面的链接,了解如何将数据集添加到项目中并将表添加到其中,以及如何将数据适配器与此数据集一起使用。

https://msdn.microsoft.com/en-us/library/04y282hb.aspx

https://msdn.microsoft.com/en-us/library/ms171919.aspx

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/populating-a-dataset-from-a-dataadapter

我希望这会对你有所帮助。 :)