这个问题困扰了几天了,请大家帮帮忙。
我在程序中设置了断点,检测SQL语句(标点也都是正确)没有错误,程序也不报任何错误,执行了ExecuteNonQuery后,其返回值=1,代表已经插入一条记录,但是每次再打开数据库新纪录还是没有插入进去 ,数据库无法更新。  插入的前四个字段是文本型,最后一个data型,代码如下:           
 string myConnstring = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " + "./databases_/medic.mdb";
               
                System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(myConnstring);
                con.Open();                string strSql = "INSERT INTO Deal([Id_num],[Amount],[Medic_pay],[Stu_pay],[Date])";
                strSql += " VALUES('" + textBox1.Text.Trim() + "','" + zje_txb.Text.Trim() + "','" + yb_txb.Text.Trim() + "','" + stu_txb.Text.Trim() + "','" + DateTime.Now.Date.ToShortDateString() + "')";                OleDbCommand deal_insert_cmd = new OleDbCommand(strSql, con);
                deal_insert_cmd.ExecuteNonQuery();
           
                int res = deal_insert_cmd.ExecuteNonQuery();                con.Close();
             

解决方案 »

  1.   

    插错数据库了没有先?Access 用了相对路径,说不定是错误的。
      

  2.   

    Id_num 如果是数字类型不能加单引号.
    Date 如果是时间类型不是用单引号而是用#号,也就是把数据两边加上#号.
      

  3.   

    找到原因了,是相对路径的问题,数据已经插入了,数据库弄错了,应该是在Visual Studio 2005\Projects\medicine\medicine\bin\Debug\databases_这个目录下的数据库
      

  4.   

    干嘛执行两遍  deal_insert_cmd.ExecuteNonQuery();
      int res = deal_insert_cmd.ExecuteNonQuery();
    把你的语句放到
    try {} catch{}里边,肯定有问题
      

  5.   

    楼上的不行的话
    你把deal_insert_cmd.ExecuteNonQuery();
    删了执行一次
      

  6.   

    哦,已经删除了,下面那一个是我测试有没有执行,看res的值是不是1