VB.Net Mysql准备语句

时间:2017-11-28 13:38:39

标签: vb.net prepared-statement

以下是我正在使用的示例代码。作为参考,让我们说table ="制造商"和index = 5.当代码运行时,我收到一个错误,说我的语法在'制造商'附近有问题。第1行的id = 5。

查询非常简单:SELECT id,locked FROM' manufacturer' WHERE id = 5;

我是准备好的陈述的新手,所以希望有人能够对我下面的失败代码有所了解(并提前感谢您提供的任何帮助)。

Public Function IsRecordLocked(ByVal table As String,ByVal index As Int16)

Dim sqlQuery As String
Dim locked As String
sqlQuery = "SELECT id, locked FROM @tbl WHERE id = @key"
Using sqlConn As New MySqlConnection(gtxtMySQLConnectionString)
    Using sqlComm As New MySqlCommand()
        With sqlComm
            .Connection = sqlConn
            .CommandText = sqlQuery
            .CommandType = CommandType.Text
            .Parameters.Add("@tbl", MySqlDbType.VarChar, 15).Value = table
            .Parameters.Add("@key", MySqlDbType.Int16, 5).Value = index
        End With
        Try
            sqlConn.Open()
            sqlComm.Prepare()
            Dim sqlReader As MySqlDataReader = sqlComm.ExecuteReader()
            While sqlReader.Read()
                If String.IsNullOrEmpty(sqlReader("locked")) Then
                    locked = "False"
                Else
                    locked = sqlReader("locked").ToString()
                    MsgBox("This record is currently locked for editing by " + locked + ". You will not be able to make changes to this record until it is released.", MsgBoxStyle.OkOnly, "Record Locked")
                End If
            End While
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            sqlConn.Dispose()
        End Try
    End Using
End Using
Return locked

结束功能

0 个答案:

没有答案