回 帖 发 新 帖 刷新版面

主题:数据库操作错误

我按教程输入下语句

        Dim myConn As New OleDb.OleDbConnection( _
                "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Athens2004.mdb") _
        )
        Dim myCommand As New OleDb.OleDbCommand("INSERT INTO medals Values(7,'土耳其',1,0,0,1,'2004-8-15')", myConn)
        myConn.Open()

        myCommand.ExecuteNonQuery()
        myConn.Close()

然后测试,出现下错误

[b]说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。

源错误:


行 48:         myConn.Open()
行 49:
[color=FF0000]行 50:         myCommand.ExecuteNonQuery()[/color]行 51:         myConn.Close()
行 52:     End Sub


源文件: E:\wwwroot\WebApplication1\WebForm1.aspx.vb    行: 50

堆栈跟踪:


[OleDbException (0x80004005): 操作必须使用一个可更新的查询。]
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr)
   System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   WebApplication1.WebForm1.Page_Load(Object sender, EventArgs e) in E:\wwwroot\WebApplication1\WebForm1.aspx.vb:50
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain()

[/b]

运行随书附送的光盘里的同样实例,也出现这样的错误
请问究竟哪里有问题了?

回复列表 (共3个回复)

沙发

数据库所在的文件夹没有IIS进程写入的权限。

板凳

不会啊,能具体点吗?

(这里论坛回复还要打分啊,好麻烦哦)

3 楼

在数据库所在文件夹属性的“安全”选项卡中将用户"IUSER_(machine name)"添加进来并赋予写入的权限。

我来回复

您尚未登录,请登录后再回复。点此登录或注册