VB.NET 2010 和 MS Access 2010 - 从字符串" "转换为类型 'Double' 无效



我是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("'", "''"))

最新更新