SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con);
                    DataSet ds = new DataSet();
                    tra.Commit();
                    ds.Clear();
                    da.Fill(ds, "table");
                    string str =
                        "insert into Class values('王二','yuwen','80');" +
                        "insert into Class values('王二','shuxue','80');" +
                        "insert into Class values('王二','yingyu','80');" +
                        "insert into Class values('王二','wuli','80');";
                    da = new SqlDataAdapter(str, con);
                    SqlCommandBuilder sqlcmd = new SqlCommandBuilder(da);
                    int total= da.Update(ds, "table");
                    ds.AcceptChanges();
这段程序 怎么更新不了数据库啊,望高人指点啊!在线

解决方案 »

  1.   

    补充一下:CONNECTION什么的都配置好了,就是没有更新得了数据库!
      

  2.   


    不清楚,不过我发现几个其它问题,不知道是否有关系!
    tra.Commit();
    你用到了事务,而且已经在更新前提交了,不知道跟这有关系没!
    你的表名是Class,看上去很像SQL关键字呀,加上方括号再试试嘞
      

  3.   

    SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con); 
      使用   da.Update(ds, "table"),查询语句,必须包含主键,才能更新成功
      

  4.   

    怎么感觉不对啊?
    我记得fill是只能用于select的。
    insert要用update吧。
    而且,在调用fill之前应该把commandtext赋值吧?
      

  5.   


    fill是针对SELECT的没错啊 fill后dataset是有值的 没有问题
      

  6.   

    SqlDataAdapter da = new SqlDataAdapter(sb.ToString(), con); 
                        DataSet ds = new DataSet(); 
                        tra.Commit(); 
                        ds.Clear(); 
                        da.Fill(ds, "table"); 
                        string str = 
                            "insert into Class values('王二','yuwen','80');" + 
                            "insert into Class values('王二','shuxue','80');" + 
                            "insert into Class values('王二','yingyu','80');" + 
                            "insert into Class values('王二','wuli','80');"; 
                        da = new SqlDataAdapter(str, con); 
                        SqlCommandBuilder sqlcmd = new SqlCommandBuilder(da); 
                        int total= da.Update(ds, "table"); 
                        ds.AcceptChanges(); 
    这里
     da.Fill(ds, "table");
    da.Update(ds, "table"); 
    da.tables("table") 的内容根本没变
      

  7.   

     string str = 
                            "insert into Class values('王二','yuwen','80');" + 
                            "insert into Class values('王二','','80');" + 
                            "insert into Class values('王二','yingyu','80');" + 
                            "insert into Class values('王二','wuli','80');"; 
                        da = new SqlDataAdapter(str, con); 
    改成:DataRow dr =ds.Tables["table"].NewRow();dr["姓名"]="王二";
    dr["课程"]="shuxue";
    dr["成绩"]="80";
    ds.Tables["table"].Rows.Add(dr);
    SqlCommandBuilder sqlcmd = new SqlCommandBuilder(da);
    da.InsertCommand = cmd.GetInsertCommand();
    da.Update(ds, "table");