我是VB.Net 2010的新手。我的问题是:我有一个查询,它使用组合框来获取tblKBA中的许多项。MS Access数据库中的所有ID都是整数。组合框显示成员和值成员设置为tblProducts的资产和ID。
myQuery="SELECT id,desc,solution FROM tblKBA WHERE tblKBA.product_id='"+cmbProducts.SelectedValue+"'"
除了从KBA表中获取项目外,我还想从department表中获取部门详细信息,这可能是在同一查询中完成的。我试着用两个不同的问题来做这件事。
myQuery="从tblDepartments中选择电话、描述、网站,其中tblDepartments.product_id=tblProducts.id和tblProducts_id='"+cmbProducts.SelectedValue+"'"
我们将感谢所有的帮助!
将'+'更改为'&'那么编译器会很高兴。
尝试将.toString
添加到cmbproducts.selectedvalue
或执行"tblKBA.product_id.equals(" & cmbProducts.selectedValue.toString & ")"
1.)不要使用字符串串联来构建查询。使用参数。
2.)我猜tblKBA.product_id是一个双精度而不是字符串,所以不要在它周围加引号。
myQuery = "SELECT id, desc FROM tblKBA WHERE tblKBA.product_id = ?"
三件事。在构建select语句之前测试您的价值。第二,使用.SelectedItem.Value而不是.SelectedValue。第三,保护自己免受sql注入攻击。使用参数,或者至少检查"值"。
If IsNumeric(cmbProducts.SelectedItem.Value) = False Then
'No valid value
Return
End If
myQuery = String.Format("SELECT id, desc FROM tblKBA WHERE tblKBA.product_id = {0}", cmbProducts.SelectedItem.Value.Replace("'", "''"))