2013-03-21 2 views
0

학교 임용을 위해 컴퓨터의 MAC 주소를 기반으로 컴퓨터 이름을 지정해야합니다. Mac-Adress와 Computername이라는 두 개의 열이있는 mySQL 테이블이 있습니다. 나는 다음 코드를 통해 컴퓨터의 mac 주소를 사용하고 싶다. 전역 문자열 =으로VB.NET의 선언문

공공 connStr의

선언 "데이터베이스 = 맥;" & _ "데이터 원본 = localhost;" & _ "사용자 ID = 루트; 암호 ="

문자열

맥 ADRESS

의 NetworkInterface = 아무것도으로

공공 하위 MacAdres() 희미한 NIC

For Each nic In NetworkInterface.GetAllNetworkInterfaces 
     mac_adress = nic.GetPhysicalAddress.ToString 
    Next 
End Sub 
을 얻기로 공공 mac_adress

그러나 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.MySqlClient.MySqlException'의 첫째 예외가> MySql.Data.dll

난 당신이 TABLENAME 또는 필드 이름에 따옴표를 필요가없는 생각
+0

Mysql에서 직접 쿼리를 실행 해 보았습니까? 필드에 따옴표를 제거하는 것 외에 ex.Message는 무엇을 인쇄합니까? 그리고 제발, 테이블 스키마를 게시하십시오. – Jaxedin

답변

0

발생 가능하면 하이픈을 제거하십시오.

Dim query As String = "SELECT * FROM mactable WHERE MacAdres = '" & mac_adress & "'" 
+0

Nope는 아무 것도하지 않았습니다. :/ – nielsvermaut

+0

흠. 테이블 이름 주위에 따옴표가있는 MySQL 예제를 보았습니다. 그러나 "적절한"따옴표가 아닙니다. - 물결표 (~) 문자 아래의'tab' 키 (및 덧붙여 말하자면 StackOverflow가 주석의 인라인 코드 블록을 표시하는 데 사용하는 것들). –

+0

@nielsvermaut 쿼리에서 테이블 이름과 필드 이름을 완전히 정규화하면 어떻게됩니까? 테이블의 경우 "Mac.mactable", 필드 이름의 경우 "Mac.mactable.Mac-adres"와 같은가? – Zeddy

0

다음과 같이 사용하여 해결 : "대신". 그것은 특이한 것이지만 그것을 해결했습니다.