2013-01-23 80 views
1

我有需要在datagridview上看到的數據的問題。貝婁是我的代碼:帶有JOIN和WHERE子句的SELECT語句不返回任何數據

Public Class Form3 

    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

Dim CONNECT_STRING As String = (...) 

Dim cnn As New OleDbConnection(CONNECT_STRING) 

     cnn.Open() 

     MsgBox(status_narocila.value) 

     Dim sql As String = "SELECT artikel.st_artikla, artikel.naziv_artikla, narocilo.kolicina, narocilo.barva_tiska, narocilo.izvedba, narocilo.opombe, narocilo.datum_narocila, narocilo.rok_izdelave, narocilo.status, narocilo.ID FROM (narocilo INNER JOIN artikel ON narocilo.id_artkla = artikel.ID) WHERE(narocilo.ID = '" & status_narocila.value & "')" 

     Dim cmd As New OleDbCommand(sql, cnn) 

     Dim da As New OleDbDataAdapter(cmd) 

     Dim ds As New DataSet 

     da.Fill(ds, "artikel") 

     cnn.Close() 

     DataGridView1.DataSource = ds.Tables("artikel") 

    End Sub 
End Class 

價值status.narocila.value是整數,我測試過,並正從正確的價值。該代碼工作正常,沒有WHERE子句。

+0

嘗試'的ToString()''→status_narocila.value.ToString()' – spajce

+0

不應該需要一個空間,(到WHERE(。我更傾向於相信你不需要'如果ID是數字數據類型,那麼narocilo.ID的數據類型是什麼? – xQbert

+0

字段narocilo.ID的數據庫類型是什麼? – Matt

回答

0
= '" & status_narocila.value & "')" 

應該是數字數據類型

= " & status_narocila.value & ")" 

沒有「。

+0

xQbert謝謝你,你的解決方案工作完美無缺 – Dave

0

如果narocilo.ID也是一個整數,那麼問題是你正在整數字段上使用文本限定符。

試着改變你的WHERE子句:

WHERE(narocilo.ID = " & status_narocila.value & ")"

+0

謝謝mate。Worked。 – Dave