0

いろいろ試しましたが、この時点で挫折しました。

Public Function GetCust(email As String) As Integer
    Dim cs As String = <connection string>
    Dim conn As New MySqlConnection(cs)
    Dim custId As Integer
    Dim cust_query As String = "SELECT entity_id FROM customer_entity WHERE email = '@email'"
    Dim com As New MySqlCommand(cust_query, conn)
    Dim reader As MySqlDataReader

    Try
        conn.Open()
        com.Parameters.Add("@email", MySqlDbType.String)
        com.Parameters("@email").Value = email
        reader = com.ExecuteReader
        While reader.Read()
            custId = reader.GetInt16(0)
        End While
        MsgBox(custId)
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try

    Return custId
End Function

テーブルから 1 つの列と 1 つの行のみを取得する必要があるため、クエリから値を 1 つだけ取得する必要がありますが、ループには入っていません。私の側の構文エラーのようですが、見つけられないようです。前もって感謝します!

4

1 に答える 1

1

SQL 文字列の email パラメータを囲む引用符を削除する必要があります。

Dim cust_query As String = "SELECT entity_id FROM customer_entity WHERE email = @email"

これにより、次のようなSQLが生成されます

WHERE email = ''myemail@mydomain.com''

いつあるべきか

WHERE email = 'myemail@mydomain.com'
于 2013-01-19T00:56:12.707 に答える