System.Data.SqlClient.SqlBulkCopy或SqlDataAdapter.Update()

解决方案 »

  1.   

    我的写法是这样的,
    SqlConnection objConn = new SqlConnection(sConnectionString);
    objConn.Open();
    SqlDataAdapter da = new SqlDataAdapter();
    SqlCommandBuilder cb = new SqlCommandBuilder(da)
    da.Update(dataSet,"TEST1");
    但执行时报异常错误:“Update无法找到TableMapping['TEST1']或DataTable"TEST1"”请问是怎么回事啊????
      

  2.   

    你绑定数据的时候也需要是这样的:
    SqlDataAdapter.Fill(dataSet,"TEST1");
      

  3.   

    1、SqlConnection objConn = new SqlConnection(sConnectionString);
    objConn.Open();
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = new SqlCommand("select * from TableName");
    SqlCommandBuilder cb = new SqlCommandBuilder(da)
    da.Update(dataSet,"TEST1"); 
    建议用SqlBulkCopy:
     SqlConnection sqlConnect = new SqlConnection;
     sqlConnect.Open();
     SqlBulkCopy bcp = new SqlBulkCopy(sqlConnect);
     bcp.DestinationTableName = tableName; //tableName 数据库表名
     bcp.WriteToServer(dt);  //dt 包含数据的DataTable
      

  4.   

    da.Update(dataSet,"TEST1"); 中的dataSet是由另外一个函数返回的dataSet已经是有数据的,还要再FILL一次吗?
      

  5.   

    SqlBulkCopy比SqlDataAdapter要快,为什么一定要用SqlDataAdapter呢?
      

  6.   


    SqlBulkCopy要USING哪个空间呢?我是用.NET2003
      

  7.   

    da.Update(dataSet,"TEST1"); 设置正确之后执行没有报错了
    但在数据库里查询发现数据根本没入库,是什么原因啊?
      

  8.   

    难道你还没看明白吗?da.Update(dataSet,"TEST1");   是将表"TEST1"更新到数据库中,也就是说在数据库中新建一个TEST1的表,这和你的要求是大相径庭的,4楼的第二种方案才是你的最佳选择,是将数据集更新到特定的表中
      

  9.   

    你们一直在说的是数据表记录的添加,可是楼主问的是更新的问题。
    我也很想知道,对于数据表中已经存在的数据,用SqlBulkCopy能进行更新操作吗?
      

  10.   

    去看看c#技术高级编程那本书或ado.net高级编程