目标数据库只能是sqlserver 来源数据库 无所谓 只要能用ado.net 将来源数据读取到dataset或者datareader 中就可以了。
        代码如下: 
using system.data; 
using system.diagnostics; 
using system.data.sqlclient;
string connectionstring = data source=hg-j3ejj9lsw5py;initial catalog=test;user id=sa;password=hg; 
datatable datatable = sql_.select_datagrid( select a from large where 1=0 ).tables[0]; 
string passportkey; 
for (int i = 0; i { 
passportkey = guid.newguid().tostring(); 
datarow datarow = datatable.newrow(); 
datarow[0] = passportkey; 
datatable.rows.add(datarow); 
} 
sqlconnection sqlconnection = new sqlconnection(connectionstring); 
sqlconnection.open(); 
sqltransaction sqltran = sqlconnection.begintransaction(); 
sqlbulkcopy sqlbulkcopy = new sqlbulkcopy(sqlconnection, sqlbulkcopyoptions.keepidentity, sqltran); 
sqlbulkcopy.destinationtablename = large; 
sqlbulkcopy.batchsize = datatable.rows.count; 
if (datatable != null && datatable.rows.count != 0) 
{ 
sqlbulkcopy.writetoserver(datatable); 
} 
sqlbulkcopy.close(); 
sqltran.rollback(); 
sqlconnection.close();
注解:  sqlbulkcopy.destinationtablename = large; large 指的是目标表的名称 
 datatable 的结构要和数据库中的表的结构相同 
(datatable的列不能多于数据库里面的) 
(datatable的列可以少于数据库里面的 如果数据库这一列有默认值的话) 
 这里面 我使用了事务 您在使用的时候 也可以不用事务
   
 
   