0

我在这里问是因为我的代码有问题。

假设要更新 SQL 数据库,但它显示了一个错误,即

键不能为空。参数名称:key

它突出显示 SQLConnection.Open()

 Private Sub btnTakeQuiz_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnTakeQuiz.Click
        Dim SQLStatement As String = "UPDATE class SET exam=Yes WHERE name = " & Session("name") & ""
        TakeQuiz(SQLStatement)
End Sub

Public Sub TakeQuiz(ByRef SQLStatement As String)
    Dim cmd As MySqlCommand = New MySqlCommand
    SQLConnection.Open()
    With cmd
        .CommandText = SQLStatement
        .CommandType = CommandType.Text
        .Connection = SQLConnection
        .ExecuteNonQuery()
    End With
    SQLConnection.Close()
    SQLConnection.Dispose()
    Server.Transfer("Quiz.aspx", True)
End Sub

Session("name") 包含当前登录用户名。

班级是我的桌子。

考试是一列,如果是,则表示用户参加了考试。

我要做的是将用户限制为仅进行一次测验。谁能帮我?

4

1 回答 1

1

“是”和会话值将被视为列或数据源,它将给出这样的查询。

UPDATE class SET exam=Yes WHERE name = <SessionValue>

你能试试这个吗?

Dim SQLStatement As String = "UPDATE class SET exam='Yes' WHERE name = '" & Session("name") & "'"
于 2013-10-16T04:59:31.123 回答