C# SqlBulkCopy实现大数据插入数据库

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:42   1800   0
public bool SqlBulkCopyData(DataTable dt)
        {
            bool flag = true;
            if (dt != null && dt.Rows.Count > 0)
            {
                string connectionString = @"server=.\sql2012;database=Test;uid=sa;pwd=abc";
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    connection.Open();
                    SqlTransaction sqlbulkTransaction = connection.BeginTransaction();
                    //请在插入数据的同时检查约束,如果发生错误调用sqlbulkTransaction事务
                    SqlBulkCopy copy = new SqlBulkCopy(connection, SqlBulkCopyOptions.CheckConstraints, sqlbulkTransaction);
                    copy.DestinationTableName = "TestDemo";
                    foreach (DataColumn dc in dt.Columns)
                        copy.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
                    try
                    {
                        copy.WriteToServer(dt);
                        sqlbulkTransaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        flag = false;
                        sqlbulkTransaction.Rollback();
                    }
                    finally
                    {
                        copy.Close();
                        connection.Close();
                    }
                }
            }
            return flag;
        }

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP