DataSet中的表格做了改动后,如何保存回数据库?
希望能有有关的代码,要简单点的,我初学数据库的。

解决方案 »

  1.   

    SqlDataAdapter   da   =   new   SqlDataAdapter("select   ...",   conn);   
    DataSet   ds   =   new   DataSet();   
    da.Fill(ds);   
    //修改ds   ...   
    SqlCommandBuilder   cb   =   new   SqlCommandBuilder(da);   
    da.Update(ds);//保存更改过的ds   
      

  2.   

    如果你要简单的,就是用填充这个数据集的SqlDataAdapter来更新
    难点的,手动实例化一个新的SqlDataAdapter对象,手动指定,InsertCommand,DeleteCommand,UpdateCommand
      

  3.   

    InsertCommand,DeleteCommand,UpdateCommand我用了,没有效果
      

  4.   

    不好意思,没有注意回帖
    你能不能给我学个代码,我把条件给你
     this.dataAdapter = new SqlDataAdapter(this.selectString, this.connection);
     this.dataSet = new DataSet();
     this.dataAdapter.Fill(this.dataSet, "学生基本信息表");
    我现在想将“学生基本信息表”中字段"Name"为"刘刚"的记录删除,将"Name"为"李平"的记录的"Age"字段改为22,把他保存到数据库,该怎么写
      

  5.   

    this.dataAdapter = new SqlDataAdapter(this.selectString, this.connection);
     this.dataSet = new DataSet();
     SqlCommandBuilder sb = new SqlCommandBuilder(this.dataAdapter);
     this.dataAdapter.Fill(this.dataSet, "学生基本信息表");
                foreach (DataRow d in dataSet.Tables[0].Rows)
                {
                    if (d["Name"].ToString() == "刘刚")
                        d.Delete();
                    if(d["Name"].ToString() == "李平")
                        d["Age"] = 22
                }
    this.dataAdapter.Update(this.dataSet)
    this.dataSet.AcceptChanges();
      

  6.   

    不能用this.dataAdapter.InsertCommand和UpdateCommand完成吗???
      

  7.   

    使用默认的CommandBuilder就是给你把InsertCommand和UpdateCommand都写了
    你也可以添加
    this.dataAdapter.InsertCommand = cb.GetInsetCommand();
    ....
    来手动指定
      

  8.   

                ////method1: get the field information from database then catch the value from the object 
                ////string strInsertPart = "";
                ////string strValuePart = "";
                //while (reader.Read())
                //{
                //    int intColumnCount = reader.FieldCount;
                //    int startCount = 0;
                //    //strInsertPart = "INSERT INTO " + obj.GetType().Name + "(";
                //    strUpdateQuery = "UPDATE " + obj.GetType().Name + " SET";
                //    //for (int i = 0; i < intColumnCount; i++)
                //    //2 just for test
                //    for (int i = 0; i < 2; i++)
                //    {
                //        if (startCount != 0)
                //        {
                //            strUpdateQuery += ",";
                //            //strValuePart += ",";
                //        }
                //        strUpdateQuery = strUpdateQuery + reader.GetName(i) + "=" + "'" + obj.GetType().GetField(reader.GetName(i)).GetValue(obj) + "'";
                //        //strInsertPart += reader.GetName(i);
                //        //strValuePart += ("'" + obj.GetType().GetField(reader.GetName(i)).GetValue(obj) + "'");
                //        startCount++;
                //    }
                //    strUpdateQuery += ") WHERE INTID=" + oBobj.INTID;
                //}