你的显然有问题,dap这个实例的参数中的SQL语句只是一个查询语句,所以你用dap.Update(mds,"sys");不会更新数据库的。如果你想同时更新数据库和DataSet给你一段参考代码,研究一下吧。
string myConn1 = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = db.mdb" ;
OleDbConnection myConn = new OleDbConnection ( myConn1 ) ;
myConn.Open ( ) ;
string strInsert = " INSERT INTO person ( id , xm , xb , nl , zip ) VALUES ( " ;
strInsert += t_id.Text + ", '" ;
strInsert += t_xm.Text + "', '" ;
strInsert += t_xb.Text + "', " ;
strInsert += t_nl.Text + ", " ;
strInsert += t_books.Text + ")" ;
OleDbCommand inst = new OleDbCommand ( strInsert , myConn ) ;
inst.ExecuteNonQuery ( ) ;
myConn.Close ( ) ;
myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . BeginEdit ( ) ;
myDataSet.Tables [ "person" ] . Rows [ myBind.Position ] . EndEdit ( ) ;
myDataSet.Tables [ "person" ] . AcceptChanges ( ) ;

解决方案 »

  1.   

    我的字段有很多,大概有3,4十个,不想用sql语句一个一个写出来啊
      

  2.   

    需要这么复杂么,晕。给你考一段。不要什么都用DATASET。
    string strInsert="Insert Into 药库单据 (凭证种类, 凭证号, 填制日期, 审核日期, 备注)" +
    "values ('C','"+this.strPingZhengHao +"','"+ System.DateTime.Now +"','','')";
    System.Data.SqlClient.SqlCommand sqlInsertCmd = new
    System.Data.SqlClient.SqlCommand();
    sqlInsertCmd.Connection = conn;
    sqlInsertCmd.CommandText=strInsert;
    sqlInsertCmd.ExecuteNonQuery();
    sqlInsertCmd.Dispose();--------------------------------------------------
    你的错误在:
    dsTemp=this.mds.GetChanges(); 
    this.dap.Update(dsTemp);
      

  3.   

    你都没有GETCHANGE,DATAADAPTER又怎么知道你要回传什么啊。
    另外DATASET很毫资源,能少用就少用,通常用于做离线数据库时用。主要方便客户端操作后再批更新到数据库中。
      

  4.   

    还是不行,老兄,我的字段太多,需要使用这种方法添加DataRow dr1 = dt1.NewRow();
    dr1["Grade"] = 9;
    dr1["GradeName"] = "test";
    dt1.Rows.Add(dr1); 应该怎么做?
      

  5.   

    你用DataSet还是要一个一个的写,如果你只想把数据写进数据库的话用不着DataSet,正如你说的DataSet消耗资源。
      

  6.   

    private OleDbCommandBuilder Cb;
    conn.Open();
    Cb=new OleDbCommandBuilder(ad);
    ad.Update(fd,TableName);
    Cb.Dispose();
    这个OleDbCommandBuider类是必需的
      

  7.   

    to icyer() 
      我加了你说的那句,没有出什么错,就是数据库中没有增加记录SqlCommandBuilder cb = new SqlCommandBuilder(dap);
    这句话的意义到底何在呢?单纯的创建了SqlCommandBuilder对象,没有使用它的任何方法