现在的位置: 首页 > 综合 > 正文

多条数据批量导入,速度超快

2012年08月01日 ⁄ 综合 ⁄ 共 1495字 ⁄ 字号 评论关闭
System.Data.DataTable dt = NewTable();
SqlDatabase db = new SqlDatabase();
          
         //声明数据库连接
            SqlConnection conn = new SqlConnection(db.CreateConnection().ConnectionString);
 
         conn.Open();
         //声明SqlBulkCopy ,using释放非托管资源
         using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
         {
             //一次批量的插入的数据量
             sqlBC.BatchSize = 1000;
             //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
             sqlBC.BulkCopyTimeout = 60; 
 
             //設定 NotifyAfter 属性,以便在每插入10000 条数据时,呼叫相应事件。  
            // sqlBC.NotifyAfter = 10000;
           //  sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied); 
 
             //设置要批量写入的表
             sqlBC.DestinationTableName = "StockInDetailTem"; 
 
             //自定义的datatable和数据库的字段进行对应
            // sqlBC.ColumnMappings.Add("id", "tel");
           // sqlBC.ColumnMappings.Add("name", "neirong"); 

             //批量写入
          sqlBC.WriteToServer(dt);
       }


         conn.Dispose();
         MessageBox.Show("添加成功");
        }

 

 private System.Data.DataTable NewTable()
        {

          System.Data.DataTable  nt = new System.Data.DataTable();
           nt.Columns.Add("ReceiveNo", typeof(string));
           nt.Columns.Add("RowNo", typeof(string));
           nt.Columns.Add("OrderNO", typeof(string));
           nt.Columns.Add("MaterialNo", typeof(string));
           nt.Columns.Add("MaterialRemark", typeof(string));
           nt.Columns.Add("Unit", typeof(string));
           nt.Columns.Add("Quantity", typeof(string));
           nt.Columns.Add("UnitPrice", typeof(string));
           nt.Columns.Add("Amount", typeof(string));
           nt.Columns.Add("TaxAmount", typeof(string));
           nt.Columns.Add("TotalAmount", typeof(string));
           nt.Columns.Add("Indate", typeof(string));
           nt.Columns.Add("SupplyID", typeof(string));
           nt.Columns.Add("WareHouseID", typeof(string));
           nt.Columns.Add("StreamLineID", typeof(string));
           nt.Columns.Add("Guid", typeof(Guid));
            return nt;
        }

抱歉!评论已关闭.