asp.net程序上传到网站虚拟主机后显示出错信息:操作必须使用一个可更新的查询。
我有一段asp测试程序,已在本地机上调试好,输入数据更新到数据库没有问题,但上传到申请的虚拟空间后执行添加数据更新数据库时出错:
Server Error in '/' Application.
--------------------------------------------------------------------------------
操作必须使用一个可更新的查询。
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。
Source Error:
Line 73:
Line 74:
Line 75: Cmd.ExecuteNonQuery()
Line 76:
Line 77: Conn.Close()
Source File: D:\hosting\users\s175981\gs_add.aspx.vb Line: 75
Stack Trace:
[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
gs_add.Button1_Click(Object sender, EventArgs e) in D:\hosting\users\s175981\gs_add.aspx.vb:75
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
--------------------------
相关程序:
'gs_add.aspx.vb
Imports System.Data
Imports System.Data.OleDb
Public Class gs_add
Inherits System.Web.UI.Page
#Region " Web 窗体设计器生成的代码 "
'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents Button2 As System.Web.UI.WebControls.Button
Protected WithEvents tb_gsdm As System.Web.UI.WebControls.TextBox
Protected WithEvents tb_gsjc As System.Web.UI.WebControls.TextBox
Protected WithEvents tb_gsmc As System.Web.UI.WebControls.TextBox
Protected WithEvents lb_msg As System.Web.UI.WebControls.Label
Protected WithEvents Button3 As System.Web.UI.WebControls.Button
'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub
#End Region
Dim Provider = "Provider=Microsoft.Jet.OLEDB.4.0"
Dim Database = "Data Source=" & Server.MapPath("wfbase.mdb")
Dim Conn As OleDbConnection, Cmd As OleDbCommand
Dim rd As OleDbDataReader
Dim SQL, nr As String
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Conn = New OleDbConnection(Provider & ";" & Database)
Conn.Open()
SQL = "select count(*) as reccount from gs"
Cmd = New OleDbCommand(SQL, Conn)
rd = Cmd.ExecuteReader()
If rd.Read() Then
tb_gsdm.Text = Format(rd.Item("reccount") + 1, "00")
End If
rd.Close()
Conn.Close()
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If tb_gsmc.Text = "" Or tb_gsjc.Text = "" Then
'Response.Write("<script language=javascript>alert('请将各项目填全!')</script>")
lb_msg.Text = "提示:记录未保存,请将各项目填全!"
Exit Sub
End If
Conn = New OleDbConnection(Provider & ";" & Database)
Conn.Open()
SQL = "insert into gs (gsdm,gsmc,gsjc) values(@gsdm,@gsmc,@gsjc)"
Cmd = New OleDbCommand(SQL, Conn)
Cmd.Parameters.Add(New OleDbParameter("@gsdm", OleDbType.Char, 255))
Cmd.Parameters.Add(New OleDbParameter("@gsmc", OleDbType.Char, 255))
Cmd.Parameters.Add(New OleDbParameter("@gsjc", OleDbType.Char, 255))
Cmd.Parameters("@gsdm").Value = Trim(tb_gsdm.Text)
Cmd.Parameters("@gsmc").Value = Trim(tb_gsmc.Text)
Cmd.Parameters("@gsjc").Value = Trim(tb_gsjc.Text)
Cmd.ExecuteNonQuery()
Conn.Close()
lb_msg.Text = "提示:记录保存成功!"
End Sub
End Class
--------------------------
所申请的虚拟主机有执行脚本的权限,支持asp.net+access数据库。
请执行一下这个程序:http://www.wonful.net/gs_admin.aspx (管理页面)
在这个管理页面中可以读取数据库显示信息,但点“增加”执行http://www.wonful.net/gs_add.aspx程序后数据无法保存
就会出现上面的错误信息。
我用的是vs2003+asp.net1.1,是不是我的程序用的asp.net1.1与服务器上的asp2.0不匹配?
难道是他们没有给我放everyone写入数据库权限么?
本人初学,这是我做的第一个asp.net程序,麻烦大家帮看看,先谢谢了!