SqlBulkCopy批量添加

        /// <summary>
        /// 添加数据
        /// 注:DataTable列名必须和数据库列名一致
        /// </summary>
        /// <returns></returns>
        public bool AddData()
        {
            var entityType = typeof(UserMessage);
            var dataTable = new DataTable(entityType.Name);
            foreach (var prop in entityType.GetProperties())
            {
                dataTable.Columns.Add(new DataColumn(prop.Name, prop.PropertyType));
            }

            var row = dataTable.NewRow();
            row["ID"] = 0;
            row["Name"] = "消息公告";
            row["Type"] = Const.Bestone.TYPE1;
            dataTable.Rows.Add(row);

            return DataTableCopy(dataTable, "数据库连接");
        }

     #region SqlBulkCopy批量添加

        /// <summary>
        /// 自增长表的插入
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="connectionString"></param>
        public bool DataTableCopy(DataTable dt, string connectionString)
        {
            return this.DataTableCopy(dt, connectionString, SqlBulkCopyOptions.Default);
        }

        /// <summary>
        /// 非自增长表的插入
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="connectionString"></param>
        /// <param name="copyOptions"></param>
        public bool DataTableCopy(DataTable dt, string connectionString, SqlBulkCopyOptions copyOptions)
        {
            try
            {
                using (var sbc = new SqlBulkCopy(connectionString, copyOptions))
                {
                    sbc.DestinationTableName = dt.TableName;
                    sbc.BatchSize = 10;

                    foreach (DataColumn col in dt.Columns)
                    {
                        sbc.ColumnMappings.Add(col.ColumnName, col.ColumnName);
                    }

                    sbc.WriteToServer(dt);
                }

                return true;
            }
            catch (Exception ex)
            {
                ex.SqlErrorLog(ex.Message, "自增长表的插入", "SqlServerHelp.DataTableCopy()");
                return false;
            }
        }

        #endregion

 

posted @ 2016-08-23 16:18  小小渔  阅读(228)  评论(0)    收藏  举报