我想使用带有数据表的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
...
}
有没有办法不手动定义数据表的模式,但要从表中读取插入应该在?
答案 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
我希望这会对你有所帮助。 :)