?public static readonly string ConnData = "Data Source=192.168.0.100;Initial Catalog=DBName;User ID=sa;Password=123456";
??????? protected void Page_Load(object sender,EventArgs e) ??????? { ??????????? if (!IsPostBack) ??????????? { ??????????????? DataTable dt = new DataTable(); ??????????????? dt.Columns.Add("ScheduleKey",typeof(Guid)); ??????????????? dt.Columns.Add("AdminUserKey",typeof(Guid)); ??????????????? dt.Columns.Add("ScheduleRuleKey",typeof(Guid)); ??????????????? dt.Columns.Add("eBayProfileKey",typeof(Guid)); ??????????????? dt.Columns.Add("LaunchTimeSite",typeof(DateTime)); ??????????????? dt.Columns.Add("CreationDate",typeof(DateTime)); ??????????????? for (int i = 0; i < 7000; i++) ??????????????? { ??????????????????? DataRow dr = dt.NewRow(); ??????????????????? dr["ScheduleKey"] = Guid.NewGuid(); ??????????????????? dr["AdminUserKey"] = Guid.NewGuid(); ??????????????????? dr["ScheduleRuleKey"] = Guid.NewGuid(); ??????????????????? dr["eBayProfileKey"] = Guid.NewGuid(); ??????????????????? dr["LaunchTimeSite"] = DateTime.Now; ??????????????????? dr["CreationDate"] = DateTime.Now; ??????????????????? dt.Rows.Add(dr); ??????????????? }
??????????????? SqlBulkCopy(dt); ??????????? } ??????? }
??????? #region?? 批量插入数据到数据库 ??????? DateTime startTime; ??????? private bool SqlBulkCopy(DataTable dt) ??????? {
??????????? try ??????????? { ??????????????? startTime = DateTime.Now; ??????????????? //数据批量导入sqlserver,创建实例???? SqlBulkCopyOptions.UseInternalTransaction采用事务?? 复制失败自动回滚 ??????????????? System.Data.SqlClient.SqlBulkCopy sqlbulk = new System.Data.SqlClient.SqlBulkCopy(ConnData,SqlBulkCopyOptions.UseInternalTransaction); ??????????????? sqlbulk.SqlRowsCopied += ??????????????? new SqlRowsCopiedEventHandler(OnRowsCopied); //订阅复制完成后的方法,参数是 sqlbulk.NotifyAfter的值 ??????????????? sqlbulk.NotifyAfter = dt.Rows.Count;
??????????????? //目标数据库表名 ??????????????? sqlbulk.DestinationTableName = "pa_ScheduleShadow"; ??????????????? //数据集字段索引与数据库字段索引映射 ??????????????? sqlbulk.ColumnMappings.Add(0,"ScheduleKey"); ??????????????? sqlbulk.ColumnMappings.Add(1,"AdminUserKey"); ??????????????? sqlbulk.ColumnMappings.Add(2,"ScheduleRuleKey"); ??????????????? sqlbulk.ColumnMappings.Add(3,"eBayProfileKey"); ??????????????? sqlbulk.ColumnMappings.Add(4,"LaunchTimeSite"); ??????????????? sqlbulk.ColumnMappings.Add(5,"CreationDate"); ??????????????? //导入 ??????????????? sqlbulk.WriteToServer(dt); ??????????????? sqlbulk.Close(); ??????????????? return true; ??????????? } ??????????? catch (Exception ex) ??????????? { ??????????????? throw new Exception(ex.Message); ??????????? } ??????????? finally ??????????? { ??????????????? dt.Dispose(); ??????????? } ??????? }
??????? //复制完成后的处理事件??????? private void OnRowsCopied(object sender,SqlRowsCopiedEventArgs args)??????? {??????????? lblCounter.Text += args.RowsCopied.ToString() + " 条记录已导入";??????????? TimeSpan copyTime = DateTime.Now - startTime;??????????? lblCounter.Text += " 花费时间:" + copyTime.Seconds.ToString() + "." +??????????? copyTime.Milliseconds.ToString() + " 秒";??????? }??????? #endregion???????
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|