public bool Updatatable(string StrSql, DataTable datatable,string ConnString)
{
 SqlConn = new SqlConnection(ConnString);
     SqlConn.Open();
System.Data.SqlClient.SqlCommand sqlCmd = new SqlCommand(StrSql, SqlConn);
            System.Data.SqlClient.SqlDataAdapter sqlAdap = new SqlDataAdapter(sqlCmd);
            System.Data.SqlClient.SqlCommandBuilder sqlBuild = new SqlCommandBuilder(sqlAdap);
         
            sqlAdap.Update(datatable);
            SqlConn.Close();}

解决方案 »

  1.   

    不知道你穿进来的DataTable有无更新不??
    传进来的都是一样的DataTable,还怎么更新
      

  2.   

    System.Data.SqlClient.SqlDataAdapter sqlAdap = new SqlDataAdapter(sqlCmd); 
    后加一句
    sqlAdap.Fill(datatable);
    试试
      

  3.   

    sqlAdap.Update(datatable);  这句之前,好像是不是还有什么datatable.AcceptChange的语法
      

  4.   

    你的目标表名是和dataTable的TableName一致吗?如果不是sqlAdap.Update(datatable); 第二参数加上吧。
      

  5.   

    dataTable这里面格式和数据的问题。
    程序逻辑对的
      

  6.   

    贴哈完整的代码,好像你那个sqlcommand后还应该有插入语句
      

  7.   


    这个说法是错的,如果你AcceptChange,那么数据库根本就不会更新,因为你执行了datatable.AcceptChange之后,datatable的所有rowstate都恢复到Unchanged状态
    一般datatable.AcceptChange是放在datatable.Update()之后
      

  8.   

    这个问题好像我之前遇见过,我使用了一个DataGridView来跟踪,结果是DataGridView的数据更新了,但数据库没变化,应该在sqlAdap.Update(datatable);  后面还要加其他代码吧
      

  9.   

    你更新的databale 是否跟数据库表结构一样你吧其他他的代码 也贴出来吧 或者调试 或许能发现什么
      

  10.   

    更新的databale 跟数据库表结构当然是一样
      

  11.   

    sqlAdap.Update(datatable);这个要能更新必须保证datatable参数就是由sqlAdap产生的对象