日期:2014-05-18  浏览次数:20381 次

怎么把DataTable的数据写入数据库,循环除外
RT
从数据库表A中读数据,生成并填充到DataTable,然后操作DataTable,最后把DataTable的数据写入到数据库表B

//生成MyDataTable
DataTable myDataTable = new DataTable();
SqlDataAdapter myAdapter = new SqlDataAdapter("读表A数据", myconn);
myAdapter.Fill(myDataTable);
//以上修改DataTable数据
myDataTable.Columns.Add("newColumn",typeof(int));
……

//然后要写入表B,除了循环写入,还有什么比较好的方法亚。



表A字段 MyDataTable字段 表B字段
A A A
B B B
C C E
D D  
  E
怎么把MyDataTable的数据写入到表B,除了循环写入,还有什么比较好的方法求教一下。
感觉好像循环写入有点不大对劲,效率有点问题

------解决方案--------------------
C# code

SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(connectionString); 
sqlBulkCopy.DestinationTableName = "Passport"; 
sqlBulkCopy.BatchSize = dataTable.Rows.Count; 
SqlConnection sqlConnection = new SqlConnection(connectionString); 
sqlConnection.Open(); 
if (dataTable!=null && dataTable.Rows.Count!=0) 
{ 
sqlBulkCopy.WriteToServer(dataTable); 
} 
sqlBulkCopy.Close(); 
sqlConnection.Close();

------解决方案--------------------
DataTable数据批量写入数据库三种方法比较
------解决方案--------------------
C# code

SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction);
sqlbulkcopy.DestinationTableName = "Table_1";//数据库中的表名
sqlbulkcopy.WriteToServer(dataset.Tables[0]);