2013-02-03 105 views
1

我有一個帶有listbox和picturebox的窗體。 lisbox從數據庫中填充文件名。如果用戶從列表框中選擇一個項目,圖片應該出現在圖片框上。在mysql數據庫中,我有一個帶有pixName(varchar),pLocation(varchar)字段的表Pix。在pLocation中,我保存了圖片的文件路徑。在mysql數據庫中存儲文件路徑,並使用vb2008檢索它

Call Connection() 
    With Me 
     STRSQL = "Select pLocation From Pix where pixName = " & lstPix.SelectedItem & "'" 
     Try 
      myCmd.Connection = myConn 
      myCmd.CommandText = STRSQL 
      reader = myCmd.ExecuteReader 
      If reader.Read Then 
       Dim path = reader.GetString(0) 
       picBox.ImageLocation = path 
      End If 
     Catch ex As Exception 
      MsgBox("no picture") 
     End Try 
    End With 

當我運行它時沒有錯誤,但是當我在列表框中選擇一個時,它會顯示「無圖片」。任何人都可以幫助我正確地完成這項工作嗎?它非常緊急,我需要今天完成這個。另外,我可以使用相同的代碼在wmp裏面播放視頻嗎?在此先感謝,Godbless。

+0

你僅將路徑名存儲在pLocation字段或完整文件名中? – Steve

+0

我存儲了圖片的完整路徑(例如D:\ MyProject \ videos \ sample.jpg)。我在這裏瀏覽並找到一個論壇,不應該使用\,因爲在MySQL字符串值中,反斜槓被解釋爲轉義字符,並建議修改路徑值以包含「\」序列以實際存儲反斜槓。因此,我將文件路徑存儲爲D:\\ MyProject \\ videos \\ sample.jpg,但仍然失敗:嘗試了 – VBeginner

回答

0

它清楚地表明您的查詢缺少撇號。查詢更改爲:

STRSQL = "Select pLocation From Pix where pixName = '" & lstPix.SelectedItem.ToString() & "'" 

和更好的解決辦法是改爲使用參數:

STRSQL = "Select pLocation From Pix where pixName = @pixName" 
myCmd.Parameters.AddWithValue("@pixName",lstPix.SelectedItem.ToString()) 
+0

,但仍得到相同的結果。請幫助:'( – VBeginner

+0

@VBeginner您需要提供更多詳細信息你得到的錯誤 – AbZy

+0

有沒有錯誤..問題是,當我在列表中選擇一個項目時,即使我已經存儲在數據庫中的圖片的完整路徑(例如,它顯示捕獲異常消息「無圖片」 :D:\ MyProject \ videos \ sample.jpg)。 – VBeginner

0

使用本

dim kol as string 

OpenFileDialog1.ShowDialog() 

kol = OpenFileDialog1.FileName.Replace("\", "\\") 

TextBox1.Text = kol 

的MySQL(插入和更新代碼)

相關問題