2013-10-23 344 views
0
myConnection.Open() 
    rtb_Address.Clear() 
    txt_Name.Clear() 
    Dim str As String 
    str = "SELECT * FROM table1 WHERE (cus_ID = '" & txt_ID.Text & "')" 
    Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection) 

    dr = cmd.ExecuteReader() 

    While dr.Read() 
     rtb_Address.Text = dr("cus_Addr").ToString 
     txt_Name.Text = dr("cus_Name").ToString 
    End While 
    myConnection.Close() 

錯誤DR = cmd.ExecuteReader()數據類型不匹配

博士被聲明爲OleDbDataReader

+0

「數據類型不匹配。」是一個包羅萬象的錯誤 - 讀SQL語法錯誤。可能cus_ID是數字,比較文本不是數字。一些後端容忍引用數字文本 - 如果你不只是不插入引號。 – rheitzman

回答

0

cus_ID是probaly數值數據類型,但你嘗試用一個查詢它字符串:(cus_ID = 'thevalue')

只需卸下封閉'(cus_ID = thevalue)

或更好,使用參數化查詢,以防止SQL注入。

-1

我想提出以下建議:

Using cmd As New OleDbCommand("SELECT * FROM table1 WHERE cus_ID = @ID", con) 
    cmd.Parameters.AddWithValue("@ID", txt_ID.Text) 

    dr = cmd.ExecuteReader() 

    While dr.Read() 
     rtb_Address.Text = dr("cus_Addr").ToString 
     txt_Name.Text = dr("cus_Name").ToString 
    End While 

End Using 
+0

錯誤是:標準說明中的「標準表達式中的數據類型不匹配」。 – sloth

+0

我的不好,然後作爲@大師燈XiHuan和我提到,可能的原因是'圍繞ID,雖然它會幫助,如果我們知道什麼數據類型cus_ID是(字符串,GUID/uniqueidentifier,整數等) – Grahamvs

+0

爲什麼我的回答得到-1? – Grahamvs