我的代码:
 //提交数据
        OleDbConnection lcon_connect = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + System.Web.HttpContext.Current.Server.MapPath("~/App_Data/therp.mdb") + "'");
        OleDbCommand lcom_command = new OleDbCommand("Insert Into [Message Board] (author,email,phone,title,detail) values ('" + TextBoxAuthor.Text + "','" + TextBoxEmail.Text + "','" + TextBoxPhone.Text + "','" + TextBoxTitle.Text + "','" + TextBoxDetail.Text +"')", lcon_connect);
        lcon_connect.Open();
        lcom_command.ExecuteNonQuery();
        lcon_connect.Close();
        //重新连接到留言板页面
        Response.Redirect("Message Board.aspx");调试的时候可以,发布到IIS就不行了报的错误如下:“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------操作必须使用一个可更新的查询。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[OleDbException (0x80004005): 操作必须使用一个可更新的查询。]
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +267
   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +192
   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +48
   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +106
   System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +108
   MessageExamine.ButtonSubmit_Click(Object sender, EventArgs e) +765
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102 

解决方案 »

  1.   

    你传送的therp.mdb文件是只读的,在上传之前先把它的属性改为可读可写。
      

  2.   

    不是只读的啊,我查过了,我在IIS里也把访问权限里的写入打勾了,还是不行啊
      

  3.   

    路径问题,建议把连接字符串放到web.config中,用"|Directory|\path\..."指示路径
      

  4.   

    没分啊 。。郁闷
    你的数据库文件没有写权限啊 不是在只读那里打勾的。老大右键 属性 安全 然后给asp.net 的那2个用户给写权限或者给everyone写权限是IIS匿名帐户对文件没有写权限 不是文件没有写权限
      

  5.   

    真是太感谢谢你了,我直接改了发布后的文件夹安全,如果改的是发布前文件夹的再发布还是不改发布后的属性,
    谢谢 你windstore(雪海飘香(梦想升星))
      

  6.   

    谢谢,结贴,只是没有分了,Sorry