Ado.net断开连接更新整个表

时间:2018-10-02 11:17:46

标签: c# vb.net ado.net oledb

我知道关于这个问题的文章更多,但是我的问题是一种特殊情况-我认为-

我有一个数据集,其中填充了由OleDataAdapter命名为“ Categories”的数据表。 在从本地PC上的数据库中填充“类别”表后,我对其进行了巨大的编辑(添加行-可能是数千行-并更新字段)。

现在,我想将所有这些编辑更新到PC上的数据库表。 如何尽快做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试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();
    }