2013-01-22 91 views
1

我花了這麼長時間來弄清楚這一點,但似乎無法解決問題。我正在使用MySql和Visual Basic。使用SQL數據讀取器將變量設置爲標籤

我正在使用select語句來獲取我需要的變量,然後使用數據讀取器循環,獲取變量(字符串)並最終將這些設置爲我在表單中使用的文本標籤。我確信我正在按照正確的程序進行操作,但這似乎並未帶來結果。

如果有人能幫助我,我將非常感激。我的代碼在下面;

lblName.Text = Form1.topicName 

    MyConnString = "Database=case management system;Data Source=localhost;User Id=root;Password="abc" 
    Dim MySqlConn As New MySqlConnection(MyConnString) 
    Dim MySelectQuery As String = "SELECT topic_id, topic_name, description, useful_links, employee_id, date "    
     & "FROM knowledge_base " 
     & "WHERE topic_name = '" & lblName.Text & "'" 
    Dim myCommand As New MySqlCommand(MySelectQuery) 
    myCommand.Connection = MySqlConn 
    MySqlConn.Open() 
    myCommand.ExecuteNonQuery() 
    mydata = myCommand.ExecuteReader 
    While mydata.Read() 
     labelDescription.Text = mydata.Item("description").ToString 
     labelLinks.Text = mydata.Item("useful_links").ToString 
    End While 
    mydata.Close() 
    myCommand.Connection.Close() 
    MySqlConn.Close() 
+0

爲什麼在這裏使用ExecuteNonQuery()? – Kiran1016

回答

1

刪除包含myCommand.ExecuteNonQuery()的行。你正在查詢!

此外,標籤(描述和鏈接)將僅包含最後一行返回的最後一個數據。

將文本輸入直接添加到SQL命令允許SQL注入攻擊。你應該使用sql參數。請參閱http://www.dotnetperls.com/sqlparameter

+0

感謝您的快速回復。 –

+0

我已經刪除了這個,仍然沒有運氣? –

+0

查詢是否返回任何內容?檢查'mydata.HasRows'。 –