日期:2014-05-17  浏览次数:20745 次

求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就行了。
下面是实例代码,跑通了的。
 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")