回 帖 发 新 帖 刷新版面

主题:请教了

运行一下代码,系统老提示:操作必须使用一个可更新的查询。 为什么?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ConnString As String
        Dim strSql As String
        Dim Conn As New OleDbConnection
        ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
        ConnString += Server.MapPath("22.mdb")
        Conn.ConnectionString = ConnString
        Conn.Open()
        Dim cmd As New OleDbCommand
        Dim lngCount As Long
        strSql = " select * from mima where 学号='" & xuehao.Text & "'"
        cmd.Connection = Conn
        cmd.CommandText = strSql
        lngCount = cmd.ExecuteScalar()
        Try
            If lngCount = 0 Then

                strSql = " insert into mima values( '" & xuehao.Text & "','" & xingming.Text & "','" & mima.Text & "','" & dianhua.Text & "','" & youxiang.Text & "','" & dizhi.Text & " ') "

                cmd.Connection = Conn
                cmd.CommandText = strSql
                cmd.ExecuteNonQuery()
                Response.Write("恭喜")
            Else
                Response.Write("对不起,你的用户名已经有人使用")
                Response.Write("请更换其它名称再进行注册。")
            End If
        Catch Err As Exception
            Response.Write(Err.Message)
        End Try

        cmd.Dispose()
        Conn.Close()
    End Sub

End Class

回复列表 (共1个回复)

沙发

晕,好象问过好几次了吧
最普遍的原因是服务器的internet来宾帐号没写入数据库access的权限,可以在浏览器安全设置里面给该帐号设置正确的权限。
在ACCESS数据库右键--属性,在安全选项卡,选中操作IIS的用户,不出于安全考虑可以选中完全控制
还有个原因就是数据库的打开方式不对,比如打开方式是不可写的
再就是可能是在ODBC管理器里把相应的DNS设置里选中了“read only”
最后一个原因,相对于SQL数据库来说,可能是操作违反了数据库参照的完整性。比如,更新一个已经设置唯一的选项,比如一个自动编号的ID,或者join操作包含了没有唯一索引的关联表等,累死我啦~~

我来回复

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