初学C#,遇到点麻烦,帮忙看一下啊。菜鸟谢过了啊 想在ACCESS数据库中插入记录,这样能行吗?我的执行结果怎么数据库没有更新呢?要怎么改一下呢??部分代码:private void toolStripButton4_Click(object sender, EventArgs e)
        {
            String q1,q2,q3,q4,q5;
            q1 = dateTimePicker1.Text;
            q2 = textBox1.Text;
            q3 = comboBox1.Text;
            q4 = richTextBox1.Text;
            q5 = comboBox2.Text;
            Conn ad = new Conn();
            OleDbDataAdapter da = new OleDbDataAdapter(@"select * from Earn", ad.dbconn);
            
            DataSet ds = new DataSet();
            da.Fill(ds);
            OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
            da.UpdateCommand =cb.GetUpdateCommand();
            DataRow drx = ds.Tables[0].NewRow();
            drx[1] = q1;
            drx[2] = q2;
            drx[3] = q3;
            drx[4] = q4;
            drx[5] = q5;
           
            ds.Tables[0].Rows.Add(drx);
            da.Update(ds);
            
        }
        想在ACCESS数据库中插入记录,这样能行吗?我的执行结果怎么数据库没有更新呢?帮我看看啊!谢谢啊!

解决方案 »

  1.   

    da.Update(ds);da中哪有update语句,你那是select
      

  2.   

    OleDbDataAdapter da = new OleDbDataAdapter(@"select * from Earn", ad.dbconn);
        
      DataSet ds = new DataSet();
      da.Fill(ds);这里的select是从数据库中返回所有记录,添加到ds所建立的缓冲区里,形成一个虚拟的表格,再用datarow新建一行,用下面的语句追加到虚拟的表格中DataRow drx = ds.Tables[0].NewRow();最后用da.Update(ds);将ds缓冲区的新的虚拟表更新到数据库中。
    不是吗??我的理解是这样的啊。呵呵
      

  3.   

    上面说的有点不对啊用DataRow drx = ds.Tables[0].NewRow();新建一行。用ds.Tables[0].Rows.Add(drx);追加到虚拟表中。