C# Bulk Insert方法

来源:互联网 发布:做服装淘宝店铺 编辑:程序博客网 时间:2024/05/17 14:20

普通的Insert发行,在大数据量的情况下,效率非常低下。但是如果用SqlBulkCopy,效率就会大大提高。

SqlBulkCopy bulkCopy = null;try{GetDBConnection();bulkCopy = new SqlBulkCopy(this.con);bulkCopy.DestinationTableName = "MyTestTable";if(dt != null && dt.Rows.Count != 0) bulkCopy.BatchSize = dt.Rows.Count; bulkCopy.WriteToServer(dt); }catch{}finally{if (bulkCopy != null) bulkCopy.Close();CloseDBConnection();}


但是用这个方法必须update一个datatable,所以如果做成了dataentity的朋友,就需要把entity转换成datatable,这是做成column的方法

public static DataTable GenerateDataTable<T>(){     DataTable dt = new DataTable();     foreach(var property in typeof(T).GetProperties())     {         dt.Columns.Add(new DataColumn(property.Name, property.PropertyType));     }     return dt;}
这是设置row的方法
foreach(var property in item.GetType().GetProperties()){temp = property.GetValue(item, null);row[property.Name] = temp;}