编辑:对于遇到此问题的任何人,不要错过有关仅使用的提示 参数,而不是将值直接插入到 SQL 查询中。
我的 vb.net 项目遇到了一个大问题,我坚持了一个星期
我有一个组合框项目,我需要将它与 Access 号进行比较,这是我的数据库以检索一些信息,但我只是收到一个错误,无论我将我的组合框项目转换成什么格式,它都说我的数据类型不兼容用表达式
这是我的代码中的一个 SQL 查询:
Dim dt1 As New DataTable
'This query select some itens from a row that match with the selected combobox number
Dim find1 As New OleDb.OleDbDataAdapter("SELECT Product, Number," _
& " Customer, Quantity, ProductionDate, AskDay, Pack, Company FROM RegOPE" _
& " WHERE Number ='" & CInt(mycombobox.SelectedItem) & "'", cn)
'Ive tried SelectedItem, Item, Text, SelectedValue...
'For conversion i tried parse, tryparse, conversion...
cn.Open() 'Opens database connection
find1.Fill(dt1) <- I got the error here
cn.Close() 'Close database connect
mydatagrid.DataSource = dt1 'Show the result in datagridview
最佳答案
数字标准应该没有引号
Dim find1 As New OleDb.OleDbDataAdapter("SELECT Product, Number, " _
& "Customer, Quantity, ProductionDate, AskDay, Pack, Company FROM RegOPE " _
& "WHERE Number =" & CInt(mycombobox.SelectedItem), cn)
但最好始终使用参数:
Dim comm = New OleDb.OleDbCommand("SELECT Product, Number, " _
& "Customer, Quantity, ProductionDate, AskDay, Pack, Company FROM RegOPE " _
& "WHERE Number =?", cn)
comm.Parameters.AddWithValue("unusedName", mycombobox.SelectedItem)
Dim find1 As New OleDb.OleDbDataAdapter(comm)
关于sql - 无法将 vb.net 项目与 Access 号进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21023767/