求DataSet批量导入Mssql数据库的写法,该如何解决
求DataSet批量导入Mssql数据库的写法
求DataSet批量导入Mssql数据库的写法
数据库有张表table1 列名 (nvarchar)Name,(nvarchar)something;
DataSet从其它数据源读入数据,也是Name 和 something 2个列;
但是name 和 something 可能是其它类型,int, datatime,long 什么的,
就是列的类型不确定,然后把它们批量导入MSSQL数据库,
一条一条的导是沒问题,但是太慢了 5W条数据花了8分钟多,
用数据库SSIS测试了一下,5W条数据只花17-22s,
,批量导入这个该怎么做?
整了一天了,网上找的方法沒一个成功的- -
------解决方案--------------------
你为什么不尝试跨库操作呢,通过sql从这个库把数据放到另一个库
------解决方案--------------------
SqlBulkCopy 类
------解决方案--------------------
第一步,填充一个datatable,然后更新datatable就行了。
下面是实例代码,跑通了的。
求DataSet批量导入Mssql数据库的写法
数据库有张表table1 列名 (nvarchar)Name,(nvarchar)something;
DataSet从其它数据源读入数据,也是Name 和 something 2个列;
但是name 和 something 可能是其它类型,int, datatime,long 什么的,
就是列的类型不确定,然后把它们批量导入MSSQL数据库,
一条一条的导是沒问题,但是太慢了 5W条数据花了8分钟多,
用数据库SSIS测试了一下,5W条数据只花17-22s,
,批量导入这个该怎么做?
整了一天了,网上找的方法沒一个成功的- -
------解决方案--------------------
你为什么不尝试跨库操作呢,通过sql从这个库把数据放到另一个库
------解决方案--------------------
SqlBulkCopy 类
------解决方案--------------------
第一步,填充一个datatable,然后更新datatable就行了。
下面是实例代码,跑通了的。
public DataSet Insert_Datable()
{
SqlConnection con = new SqlConnection(Configuration.Conn);
SqlDataAdapter sdp = new SqlDataAdapter();
DataSet dt = new DataSet();
SqlCommand comm = new SqlCommand();
comm.Connection = con;
comm.CommandText = "select Names,Address,Pid,Image from Users";
sdp.SelectCommand = comm;//首先要指定selectitem,并且字段要指定清楚,和insert字段个数和名称一致
SqlCommandBuilder scom = new SqlCommandBuilder(sdp);
sdp.Fill(dt, "Users");
comm.CommandText = "Insert into Users values(@Pid,@Names,@Address,@Image)";
SqlParameter[] pars = new SqlParameter[] {
new SqlParameter("@Pid",SqlDbType.Int,4,"Pid")