string sql = "UPDATE renwu SET renwuneirong ='" + hjlbl.Text + "' WHERE(id = " + hjlbl.Tag + ")";
                OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\renwu.mdb");
                conn.Open();
                OleDbCommand cmd = new OleDbCommand(sql, conn);                if (cmd.ExecuteNonQuery() != 0)
                    MessageBox.Show("修改成功");
                else 
                    MessageBox.Show("没有修改成功");这个每次他都告诉我修改成功,但打开数据库发现里面的内容并没有修改,究竟是哪里错了

解决方案 »

  1.   

    是不是where条件不符合啊,修改成功并不说明,有记录被修改
      

  2.   

    我直接将内容改为文本id后面的改为数字也不行,但复制这句话到数据库直接新建查询运行又没有问题能正常修改,所以不是SQL语句的问题
      

  3.   

    UPDATE renwu SET renwuneirong ='" + hjlbl.Text + "' WHERE [id] = " + hjlbl.Tag
      

  4.   

    真出鬼了,我用这么一句话来跟踪一下数据库里面的更改后的数据居然显示的也是更改过的,但打开数据库就是没有变
    string linshi =Convert.ToString ( shuju.ds("SELECT renwuneirong FROM renwu WHERE [id] = " + hjlbl.Tag).Rows[0].ItemArray.GetValue(0));
    ------
    shuju.ds(string sql)就是那个读取数据库数据的函数。
      

  5.   

    改成这样试试?string sql = "UPDATE renwu SET renwuneirong ='" + hjlbl.Text + "' WHERE(id = '" + hjlbl.Tag + "')";
      

  6.   

    你先吧 sql 语句 在 查询分析器 里面执行下 看看可有结果 
      

  7.   

    你是在调试时试的吗?
    调试程序时不会使用原来的数据文件,会复制一个新的。
    你去debug文件夹下看renwu.mdb是否更新过。
      

  8.   

    string sql = "UPDATE renwu SET [renwuneirong] ='" + hjlbl.Text + "' WHERE([id] = " + hjlbl.Tag + ")";
    你试试这句行不行,好像在程序中Access是要方括号的,多年不用Access了 ,不太清楚。