通过C#中的ADO.Net将自定义类数据列表大容量插入到SQL中



我已将数据集批量插入SQL。但我不确定如何将数据集合(列表)插入SQL表中。我还需要在整个插入过程中维护事务。

我试过了,如下所示。

using (SqlConnection sqlConn = new SqlConnection(ConnectionString)
        {
            sqlConn.Open();
            using (SqlTransaction sqlTran = sqlConn.BeginTransaction())
            {
                try
                {
                    foreach (CustomClass item in ListOfData)
                    {
                        string query = "Build the Query Here";
                        SqlCommand sqlComm = new SqlCommand(query, sqlConn, sqlTran);
                        sqlComm.ExecuteNonQuery();
                    }
                    sqlTran.Commit();
                }
                catch (Exception ex)
                {
                    sqlTran.Rollback();
                    throw ex;
                }
            }
       }

但我不确定,这是否是一种正确的方式。。?请提供建议。

如果它是批量的,我仍然会使用SqlBulkCopy。只要数据不是巨大,我就会从列表中构造一个DataTable(可能使用反射或FastMember),然后将其传递给SqlBulkCopy实例(并提供事务)。

最新更新