2013-11-20 326 views
0

每當我嘗試從訪問數據庫中讀取信息時,我似乎都會繼續出現'條件表達式中的數據類型不匹配'錯誤,數據庫中的數據正在被添加到一個listview ..以下是代碼:標準表達式(VB)中的數據類型不匹配

POStable.Clear() 

    connection1.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=Shop.mdb" 
    connection1.Open() 
    POSAdapter = New OleDb.OleDbDataAdapter("Select * from items where barcode = '" & txtBarcode.Text & "'", connection1) 
    CommandBuilder = New OleDb.OleDbCommandBuilder(POSAdapter) 
    POSAdapter.Fill(POStable)    ' **** 
    connection1.Close() 


    If POStable.Rows.Count = 0 Then 
     MsgBox("Item does not exist") 
    Else 
     Dim objListItem As ListViewItem 
     objListItem = ListViewPOS.Items.Add(POStable.Rows(0)(1).ToString) 
     objListItem.SubItems.Add(1) 
     objListItem.SubItems.Add("£" & (POStable.Rows(0)(2).ToString)) 
    End If 

BOLD上面的部分是我得到錯誤的地方。我連接到一個包含一個名爲items的表的數據庫。在該表中,只有一行和四列用於測試:條形碼,項目,價格和數量。

我希望如果有人能幫我解釋爲什麼我有錯誤? 感謝

+0

如果'txtBarcode.Text'爲空或含有非法字符,可能會導致錯誤,或者如果條形碼列不是文本 – Plutonix

+0

在數據庫IVE集測試條碼爲123.即使我輸入文本框,我仍然會得到數據類型不匹配錯誤。啊沒關係。我看到條形碼本身的數據類型是數字。已將其更改爲文本,現在正在工作。謝謝! – Mt91

+0

但什麼是數據庫列TYPE? – Plutonix

回答

1

試試這個,如果你的文本中包含illigal字符

POSAdapter = New OleDb.OleDbDataAdapter("Select * from items where barcode = [" & txtBarcode.Text & "]", connection1) 
相關問題