Ado.net 断开更新整个表
Posted
技术标签:
【中文标题】Ado.net 断开更新整个表【英文标题】:Ado.net disconnected update whole table 【发布时间】:2019-03-07 12:25:41 【问题描述】:我知道关于这个问题的文章还有很多,但我的问题是一个特例——我认为——
我有一个由 OleDataAdapter 填充的名为“Categories”的数据表的数据集。 从本地 PC 上的数据库中填写“类别”表后,我对其进行了大量编辑(添加行 - 可能是数千行 - 并更新字段)。
现在,我想将所有这些编辑更新到 PC 上的数据库表中。 如何尽快做到这一点?
【问题讨论】:
***.com/questions/25323560/… 您只是添加新行还是编辑现有行? 你的不是特例。 DataAdapter 用于跟踪更改,然后更新数据库。你不需要遍历任何东西,我会避免这些解决方案。 See this documentation 感谢大家的回复,但我使用的是 OleDb 而不是 Sql 并且 SqlConnection 不支持我的提供程序(Provider=Microsoft.ACE.OLEDB.12.0;Data Source=......) 【参考方案1】:试试 SqlBulkCopy
https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlbulkcopy?redirectedfrom=MSDN&view=netframework-4.7.2
快速示例:
DataTable dt = new DataTable();
foreach (var itm in sampleList)
DataRow row = dt.NewRow();
row["Field1"] = itm.Field1;
row["Field2"] = itm.Field2;
row["Field3"] = itm.Field3;
dt.Rows.Add(row);
using (SqlConnection cn = new SqlConnection(connectionString))
cn.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(cn))
bulkCopy.DestinationTableName = "dbo.Categories";
bulkCopy.WriteToServer(dt);
cn.Close();
【讨论】:
sqlConnection 不支持我的提供程序(Provider=Microsoft.ACE.OLEDB.12.0;Data Source=......)以上是关于Ado.net 断开更新整个表的主要内容,如果未能解决你的问题,请参考以下文章