帮我看看这个是什么原因

awe2312 2008-06-27 08:54:58
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

操作必须使用一个可更新的查询。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

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

源错误:


行 25: myCmd = New OleDbCommand(sql, myconn)
行 26: myconn.Open()
行 27: myCmd.ExecuteNonQuery()
行 28: myconn.Close()
行 29: End Function


源文件: c:\inetpub\wwwroot\zbedit.aspx 行: 27

堆栈跟踪:


[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
ASP.zbedit_aspx.executesql(String sql) in c:\inetpub\wwwroot\zbedit.aspx:27
ASP.zbedit_aspx.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\zbedit.aspx:63
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061


...全文
107 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
awe2312 2008-06-27
  • 打赏
  • 举报
回复
谁能留个QQ 远程帮我看看
满衣兄 2008-06-27
  • 打赏
  • 举报
回复
汗,让你帖语句,你弄这么一大段,谁有闲心帮你看?
awe2312 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xiaogang107 的回复:]
楼主的sql语句是什么,贴出来我们看一下。
[/Quote]

<script language="VB" runat="server">
Dim sql As String
Dim bianhao As Integer
Dim title, author, from, guimo, diqu, content As String
Dim classid, specialid As Integer
Dim myconn As OleDbConnection
Dim myCmd, newscmd As OleDbCommand
Dim dtCmd As OleDbDataAdapter
Dim dtSet As DataSet
Dim dv As DataView
'获取数据子程序
Function getdatareader(ByVal str As String) As OleDbDataReader
myCmd = New OleDbCommand(str, myconn)
myconn.Open()
getdatareader = myCmd.ExecuteReader()
End Function
'执行字符串子程序
Function executesql(ByVal sql As String)
myCmd = New OleDbCommand(sql, myconn)
myconn.Open()
myCmd.ExecuteNonQuery()
myconn.Close()
End Function
'执行修改操作子程序
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Session("user") = "administrator" Then
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("./") & "Date/Access.mdb"
myconn = New OleDbConnection(strConn)
If Not Page.IsPostBack Then
step1.Visible = "true"
'显示新闻内容
bianhao = Page.Request("newsid")
sql = "select Title,Author,Original,guimo,diqu,Content,ClassesID from Zpin where NewsID=" & bianhao
Dim Reader As OleDbDataReader = getdatareader(sql)
While Reader.Read()

title = Reader.Item(0)
author = Reader.Item(1)
from = Reader.Item(2)
guimo = Reader.Item(3)
diqu = Reader.Item(4)
content = Reader.Item(5)
classid = Reader.Item(6)
End While
myconn.Close()
End If
If Page.Request("action") = "edit" Then
title = Page.Request("title")
author = Page.Request("author")
from = Page.Request("from")
guimo = Page.Request("guimo")
diqu = Page.Request("diqu")
content = Page.Request("content")
classid = Page.Request("Classes")
sql = "update Zpin set Title='" & title & "',Author='" & author & "',Original='" & from & "',Guimo='" & guimo & "',Diqu='" & diqu & "',Content='" & content & "',UpdateTime='" & DateTime.Now() & "',ClassesID=" & classid & " where NewsID=" & bianhao
executesql(sql)
message.Text = "<center>招聘信息更新成功!</center><br><center><a href='zpmanager.aspx'>继续</a></center>"
step1.Visible = "false"
End If
Else
Response.Redirect("login.aspx")
End If
End Sub
</script>
大自然D使者 2008-06-27
  • 打赏
  • 举报
回复
楼主的sql语句是什么,贴出来我们看一下。
kissesyan 2008-06-27
  • 打赏
  • 举报
回复
你看下你放数据库文件的那个文件夹的ASP.NET用户的权限是什么
然后改下就好了
awe2312 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kissesyan 的回复:]
对数据库的操作权限不够,只能查询,不能操作,需要对数据库文件添加写入和修改的权限.
[/Quote]
具体怎么操作?
kissesyan 2008-06-27
  • 打赏
  • 举报
回复
对数据库的操作权限不够,只能查询,不能操作,需要对数据库文件添加写入和修改的权限.
awe2312 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lonelygames 的回复:]
我在VS 2005上可以正常调试运行,不会出现这样的提示;
怎么说呢!!!

行 25: myCmd = New OleDbCommand(sql, myconn)
行 26: myconn.Open()
把这两行倒过来试一下.
行 26: myconn.Open()
行 25: myCmd = New OleDbCommand(sql, myconn)
[/Quote]

没用,还是一样提示这个
lonelygames 2008-06-27
  • 打赏
  • 举报
回复
我在VS 2005上可以正常调试运行,不会出现这样的提示;
怎么说呢!!!

行 25: myCmd = New OleDbCommand(sql, myconn)
行 26: myconn.Open()
把这两行倒过来试一下.
行 26: myconn.Open()
行 25: myCmd = New OleDbCommand(sql, myconn)
awe2312 2008-06-27
  • 打赏
  • 举报
回复
我在VS 2005上可以正常调试运行,不会出现这样的提示;

把它复制到IIS上再次运行时,就不能添加数据和修改!提示上面的错误
lonelygames 2008-06-27
  • 打赏
  • 举报
回复
排查方法.
1\把你的sql语句放到数据库中直接执行,看是否能运行.
2\你联接的用户对要更新的表是否有UPDATE的权根.
zhxhdean 2008-06-27
  • 打赏
  • 举报
回复
lz把代码多帖出来点!
lonelygames 2008-06-27
  • 打赏
  • 举报
回复
sql语句有问题的啊!
请把sql贴出来.
awe2312 2008-06-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 NekChan 的回复:]
这个myCmd.ExecuteNonQuery()是执行update,delete等语句的,如果是用select,应该使用dataadapter
[/Quote]

是执行update的
NekChan 2008-06-27
  • 打赏
  • 举报
回复
这个myCmd.ExecuteNonQuery()是执行update,delete等语句的,如果是用select,应该使用dataadapter

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧