我想使用带有datatable的数据适配器将数千条记录插入到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
...
}是否有任何方法不手动定义datatable的架构,而是从插入的表中读取它?
发布于 2017-07-04 08:25:04
定义SelectCommand并应用Fill方法首先获取数据。如果只需要表模式,只需执行不返回任何行的查询即可。
SqlDataAdapter adapter = new SqlDataAdapter();
DataTable table = new DataTable();
adapter.SelectCommand = new SqlCommand("SELECT * FROM myTable WHERE 1=2");
adapter.Fill(table);发布于 2017-07-04 08:25:32
您可以在项目中创建/定义数据集,并可以在任何需要的地方使用它。
查看下面的链接,显示如何向项目中添加数据集并向其添加表,以及如何在此数据集中使用数据适配器。
https://msdn.microsoft.com/en-us/library/04y282hb.aspx
https://msdn.microsoft.com/en-us/library/ms171919.aspx
我希望这能帮到你。:)
https://stackoverflow.com/questions/44900399
复制相似问题