2017-08-30 10 views
-2

ラベル値を追加する数値をクエリに追加します。以下のクエリを試しますが、データの不一致が返されます。c# - クエリにラベル値を追加する

OleDbDataAdapter db = new OleDbDataAdapter("SELECT * FROM mytable WHERE Count <= '" + label3.Text + "'", con); 
+4

追加することはできますか?また、文字列を連結する代わりに、パラメータ化されたクエリを作成することをお勧めします。 – gmiley

+3

1.アポストロフィを削除します。2. Countは予約語で、角かっこで囲みます。 –

+0

エラーは「条件式のデータ型の不一致」です。 –

答えて

5

更新は、私はいくつかのissuesesがここにありますので、これは、あなたのために働く、驚いています。たとえば、

SELECT * FROM mytable WHERE Count(*) <= 3 

のようなものはグループ化されていないので少し奇妙です。

あなたはこの文を使用することができますテーブルの行カウントする:私は理解されるように、文をお使いの場合には

SELECT Count(*) FROM mytable 

を。

SELECT Count(*) FROM mytable HAVING COUNT(*) <= 3; 

は、テーブルに3行以下の行がある場合にのみ行を返します。


'をスキップします。この場合、文字列ではなく実際の数値を参照しています。

new OleDbDataAdapter("SELECT * FROM mytable WHERE Count(*) <= " + label3.Text, con); 

@DmitryBychenkoが述べたように、あなたは「何か」を数える必要があります。

+0

十分ではありません。上記のコメントを見てください – Steve

+0

ああ、はい、数括弧の発言。 – Stefan

+0

が動作します。感謝の相手 –

1

InventoryCountが整数であると仮定すると、intと文字列を比較します。

正しいクエリは次のようになります。あなたが受けている正確なエラーに

OleDbDataAdapter db = new OleDbDataAdapter("SELECT * FROM DropsSyrupSusppension WHERE InventoryCount <= " + label3.Text, con); 
関連する問題