0

学校の課題では、MAC アドレスに基づいてコンピューターに名前を付ける必要があります。Mac-Adress と Computername の 2 つの列を持つ mySQL テーブルがあります。次のコードでコンピューターの mac アドレスを使用したいのですが、動作します。

グローバル宣言

Public connStr As String = "データベース=Mac;" & _ "データ ソース = localhost;" & _ "User Id=root;Password=" Public mac_address As String

Mac アドレスの取得

Public Sub MacAdres() Dim nic As NetworkInterface = Nothing

    For Each nic In NetworkInterface.GetAllNetworkInterfaces
        mac_adress = nic.GetPhysicalAddress.ToString
    Next
End Sub

しかし、WHERE ステートメントを作成しようとすると、エラーが発生します。WHERE ステートメントに次のコードを使用しています。

Public Sub retriveData()
    Try
        Dim query As String = "SELECT * FROM 'mactable' WHERE 'Mac-adres' = '" & mac_adress & "'"
        Dim connection As New MySqlConnection(connStr)
        Dim cmd As New MySqlCommand(query, connection)

        connection.Open()

        Dim reader As MySqlDataReader
        reader = cmd.ExecuteReader()

        While reader.Read()
            MessageBox.Show(reader.GetString(1))
        End While

        reader.Close()
        connection.Close()
    Catch ex As Exception
        Console.WriteLine(ex.Message)
    End Try
End Sub

私は何を間違っていますか?

>MySql.Data.dll で「MySql.Data.MySqlClient.MySqlException」タイプの初回例外が発生しました

4

2 に答える 2

0

これらを使用して解決しました:これらの代わりに「`」'。それはかなり独特ですが、それはそれを解決しました。

于 2013-03-23T17:39:46.160 に答える
0

テーブル名またはフィールド名に引用符は必要ないと思います。おそらくハイフンを削除してください。

Dim query As String = "SELECT * FROM mactable WHERE MacAdres = '" & mac_adress & "'"
于 2013-03-21T18:05:26.537 に答える