0

私のコードの問題は何ですか?AddWithValue is not member of MySql.Data.MySqlClient.MySqlParameter というエラーが発生しています

これは私のコードです:

    Dim bn As String = ""
    Dim bottles As Integer = 0

    Dim SQLStatement As String = "UPDATE patient SET number_of_bottles = @bottles WHERE bednumber = @bednumber"

    Using cnn As New MySqlConnection("Server=localhost; database=patientinfo;user id=root;password=")
        Dim cmdn As New MySqlCommand(SQLStatement, cnn)
        cmdn.Parameters.AddWithValue("bottles", bottles)
        cmdn.Parameters.AddWithValue("bednumber", bn)
        cnn.Open()
        cmd.ExecuteNonQuery()

    End Using

私はVB.netとMySqlが初めてです。どんな助けでも大歓迎です。ありがとう !:)

4

2 に答える 2

1

パラメータで使用した名前を使用する必要があります(@記号がありません):

cmdn.Parameters.AddWithValue("@bottles", bottles)
cmdn.Parameters.AddWithValue("@bednumber", bn)
于 2012-08-13T18:52:56.803 に答える
1

"AddWithValue" をサポートしていない (一部のプロバイダーはサポートしていない) プロバイダーを使用している場合は、拡張メソッドを使用して独自のプロバイダーを作成できます。これは、(IDbCommand を拡張する) いくつかのオーバーロードを含む "AddWithValue" 拡張メソッドの例です。

    ''' <summary>
    ''' Adds a parameter into the IDbCommand and sets it's name, value and type.
    ''' </summary>
    ''' <param name="cmd"></param>
    ''' <param name="paramName"></param>
    ''' <param name="paramValue"></param>
    ''' <param name="dbType"></param>
    ''' <remarks></remarks>
    <Extension()> _
    Public Sub AddWithValue(ByVal cmd As IDbCommand, ByVal paramName As String, ByVal paramValue As Object, ByVal dbType As DbType)
        Dim param As DbParameter = cmd.CreateParameter
        param.ParameterName = paramName
        param.DbType = dbType
        param.Value = paramValue
        cmd.Parameters.Add(param)
    End Sub

    ''' <summary>
    ''' Adds a parameter into the IDbCommand and name and value.
    ''' </summary>
    ''' <param name="cmd"></param>
    ''' <param name="paramName"></param>
    ''' <param name="paramValue"></param>
    ''' <remarks></remarks>
    <Extension()> _
    Public Sub AddWithValue(ByVal cmd As IDbCommand, ByVal paramName As String, ByVal paramValue As Object)
        Dim param As DbParameter = cmd.CreateParameter
        param.ParameterName = paramName
        param.Value = paramValue
        cmd.Parameters.Add(param)
    End Sub

    ''' <summary>
    ''' Adds a parameter into the IDbCommand and sets it's name, value and type.
    ''' </summary>
    ''' <param name="cmd"></param>
    ''' <param name="paramName"></param>
    ''' <param name="paramValue"></param>
    ''' <param name="dbType"></param>
    ''' <remarks></remarks>
    <Extension()> _
    Public Sub AddWithValue(ByVal cmd As IDbCommand, ByVal paramName As String, ByVal paramValue As Object, ByVal dbType As DbType, ByVal size As Integer)
        Dim param As DbParameter = cmd.CreateParameter
        param.ParameterName = paramName
        param.DbType = dbType
        param.Value = paramValue
        param.Size = size
        cmd.Parameters.Add(param)
    End Sub
于 2012-08-13T19:52:51.033 に答える