2016-08-04 68 views
0

我的程序有问题。它会显示“附加信息:标准表达式中的数据类型不匹配”。和错误是投掷到rs.Fill(dt)这里是我的代码ms访问数据库上的数据类型不匹配

con.Open() 

     Dim dt As New DataTable("tbl_Stock") 
     Dim rs As New OleDb.OleDbDataAdapter("Select * from [tbl_Stocks] WHERE [Product] ='" & lbPro.Text & "' AND [Batch ID] = '" & txtID.Text & "'", con) 
     Dim ve As String 
     rs.Fill(dt) 


     ve = CStr(dt.Rows.Count) 
     rs.Dispose() 
     con.Close() 
+3

使用的参数,以避免SQL注入和格式问题。它也可以解决您的问题,因为批处理ID可能不是数据库中的字符串值。 – LarsTech

+1

[你清楚知道参数](http://stackoverflow.com/q/38610476/1070452)为什么你不使用这里? – Plutonix

+0

这个错误非常复杂 - 通常这个问题是一个语法错误。 – rheitzman

回答

0

最有可能的,批次ID是数字,因此没有报价:

Dim rs As New OleDb.OleDbDataAdapter("Select * from [tbl_Stocks] WHERE [Product] ='" & lbPro.Text & "' AND [Batch ID] = " & txtID.Text & "", con)