星空网 > 软件开发 > ASP.net

bulkcopy实现批量插入与更新

public static void UpdateData<T>(List<T> list, string TabelName)    {      DataTable dt = new DataTable("MyTable");      clsBulkOperation blk = new clsBulkOperation();      dt = ConvertToDataTable(list);      ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);      using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["tcxxconnstring"].ConnectionString))      {        using (SqlCommand command = new SqlCommand("", conn))        {          try          {            conn.Open();            command.CommandText = "CREATE TABLE #TmpTable(...)";            command.ExecuteNonQuery();            using (SqlBulkCopy = new SqlBulkCopy(conn))            {              bulkcopy.BulkCopyTimeout = 660;              bulkcopy.DestinationTableName = TabelName;              bulkcopy.WriteToServer(dt);              bulkcopy.Close();            }            // Updating destination table, and dropping temp table            command.CommandTimeout = 300;            command.CommandText = "UPDATE T SET ... FROM " + TabelName + " T INNER JOIN #TmpTable Temp ON ...; DROP TABLE #TmpTable;";            command.ExecuteNonQuery();          }          catch (Exception ex)          {            // Handle exception properly          }          finally          {            conn.Close();          }        }      }    } public static void InsertData<T>(List<T> list,string TableName)    {        DataTable dt = new DataTable("MyTable");        clsBulkOperation blk = new clsBulkOperation();        dt = ConvertToDataTable(list);        ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);        using (SqlBulkCopy bulkcopy = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["SchoolSoulDataEntitiesForReport"].ConnectionString))        {          bulkcopy.BulkCopyTimeout = 660;          bulkcopy.DestinationTableName = TableName;          bulkcopy.WriteToServer(dt);        }    }  public static DataTable ConvertToDataTable<T>(IList<T> data)    {      PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));      DataTable table = new DataTable();      foreach (PropertyDescriptor prop in properties)        table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);      foreach (T item in data)      {        DataRow row = table.NewRow();        foreach (PropertyDescriptor prop in properties)          row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;        table.Rows.Add(row);      }      return table;    }

 




原标题:bulkcopy实现批量插入与更新

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

中国品牌的东南亚之路:在地化探索与市场深耕 :https://www.goluckyvip.com/news/137153.html
Flipkart正在洽谈收购配送平台Dunzo:https://www.goluckyvip.com/news/137154.html
联邦快递快件投递错误案件最新回应_联邦快递不仅撒谎还涉嫌违法:https://www.goluckyvip.com/news/1372.html
所有从这12个国家的进口货物必须接受海关检疫!:https://www.goluckyvip.com/news/1373.html
前海万方_物流公司:https://www.goluckyvip.com/news/1374.html
海邑海外仓:https://www.goluckyvip.com/news/1375.html
携程旅游网折扣优惠最新攻略(携程旅游网更佳折扣优惠):https://www.vstour.cn/a/411227.html
深圳到西安自驾路线攻略 深圳到西安自驾最佳路线:https://www.vstour.cn/a/411228.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流