access数据库update问题,总是修改失败!可我写的程序是没有问题的!private const string SQL_UpdateTitle = @"update [CompanyInfo] set[Title]=@Title where [Id]=@id";
 public void UpdateCompanyInfoTitle(string title,int id)//修改标题
        {
            OleDbCommand cmd = SQLHelper.GetCommandStr(SQL_UpdateTitle);
          OleDbParameter[] parms ={ new OleDbParameter("@id",id),
                                     new OleDbParameter("@Title",title)  };
          foreach (OleDbParameter parm in parms)
          {
              cmd.Parameters.Add(parm);
          }
            bool fg = SQLHelper.ExecuteNonQuery(cmd);
            if (fg == true)
            {
                JavaScript.GetJavaScript("修改成功!");
                JavaScript.GetJavaScriptMainBack();            }
            else
            {
                JavaScript.GetJavaScript("修改失败!");
            }        }

解决方案 »

  1.   

    access更新不成功,大多是文件权限的问题..
    将抛出异常的详细信息看看就知道了..
      

  2.   

    access文件(xx.mdb)必须给予一定的操作权限
    如果是win2000/2003/xp,必须给予user/aspnet2个用户修改权限
    如果是win7/2008,必须给予user/networkservice用户修改权限并且该文件不可以为只读.可在你这一句
    bool fg = SQLHelper.ExecuteNonQuery(cmd);
    添加try/catchtry
    {
    bool fg = SQLHelper.ExecuteNonQuery(cmd);
    }
    catch(Exception ex)
    {
        throw ex;
    }这样就可以把错误所在显示出来了.
      

  3.   

    OleDbParameter参数的顺序一定要按照sql语句中的插入的列的顺序赋值,否则一定会报异常
    try catch
      

  4.   

    第一句:set和[Title]之间少个空格
      

  5.   

     OleDbParameter[] parms ={ new OleDbParameter("@id",id),
      new OleDbParameter("@Title",title) };
    写反了,应该是 OleDbParameter[] parms ={  new OleDbParameter("@Title",title),new OleDbParameter("@id",id)
      };
    SQL可以不按照顺序,但是Access一定要按照顺序,没有报异常是因为参数不对,所以没有任何更新的操作。不是权限的问题