在VS2005里面执行下面的语句
protected const string ACCESS_CONNECTION_STRING  = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SYXT.mdb";
string strConn = ACCESS_CONNECTION_STRING;
            string strUpdateSQL = "UPDATE Price SET InputCode = 'sss', Price = 12 WHERE ID = 1";
            OleDbConnection ocnn = new OleDbConnection(strConn);
            OleDbCommand ocmd = new OleDbCommand(strUpdateSQL, ocnn);
            ocnn.Open();
            ocmd.CommandType = CommandType.Text;
            int i = ocmd.ExecuteNonQuery();
            ocmd.Connection.Close();
SQL语句可以单独执行,上面ExecuteNonQuery的返回的结果也是1,但是access文件中的数据就是没有被更新,这是为什么啊。

解决方案 »

  1.   

    have a try!change
    string strUpdateSQL = "UPDATE Price SET InputCode = 'sss', Price = 12 WHERE ID = 1";with
    string strUpdateSQL = "UPDATE [Price] SET [InputCode] = 'sss', [Price] = 12 WHERE [ID] = 1";
      

  2.   

    有返回值应该是已经更新了,如果是ID由于有关键字要加[ID]的话,就会抛出异常,不会有返回1了!建议LZ仔细对照数据库!
      

  3.   

    你确定你检查的文件是SYXT.mdb吗,是不是把表弄错了,返回值为1,说明正确更新了,并且更新了数据
      

  4.   

    真的是搞错文件了,我原来是把SYXT.mdb文件放在工程目录下的,运行的时候他又在Debug目录下自己拷贝了一个。谢谢各位的帮助。