2

私は VB.Net 2010 を初めて使用します。これが私の問題です。コンボ ボックスを使用して tblKBA の多くのアイテムを取得するクエリがあります。MS Access データベースのすべての ID は整数です。コンボ ボックスの表示メンバーと値のメンバーは、tblProducts の資産と ID に設定されます。

myQuery = "SELECT id, desc, solution FROM tblKBA WHERE tblKBA.product_id = '" + cmbProducts.SelectedValue + "'"

KBA テーブルからアイテムを取得するだけでなく、おそらく同じクエリで部門テーブルから部門の詳細を取得したいと考えています。私は2つの別々のクエリでそれをやろうとしています。

myQuery = "tblDepartments (tblDepartments.product_id = tblProducts.id および tblProducts.id = '" + cmbProducts.SelectedValue + "' ") から電話番号、説明、Web サイトを選択します

すべての助けに感謝します!

4

4 に答える 4

1

追加.toStringするcmbproducts.selectedvalueか、実行してみてください"tblKBA.product_id.equals(" & cmbProducts.selectedValue.toString & ")"

于 2012-07-09T14:50:18.973 に答える
1

「+」を「&」に変更すると、コンパイラーは満足します。

于 2012-07-09T14:43:41.267 に答える
0

1.) クエリの作成に文字列連結を使用しないでください。パラメータを使用します。

2.) tblKBA.product_id は文字列ではなく double であると推測しているため、引用符で囲まないでください。

myQuery = "SELECT id, desc FROM tblKBA WHERE tblKBA.product_id = ?"
于 2012-07-09T14:39:24.247 に答える
0

3つのこと。select ステートメントを作成する前に値をテストします。次に、.SelectedValue の代わりに .SelectedItem.Value を使用します。第三に、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("'", "''"))
于 2012-07-09T14:46:20.147 に答える