配列の内容を使用してテーブルを検索するクエリを使用して、DB2 データベース内のすべてのレコードをカウントしようとしています。
string[] strNumbers = txtNumbers.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
string strSearch = "";
strSearch = "SELECT COUNT(*) FROM TABLENAME WHERE NUMBER = '" + strNumbers + "' AND COMMENT = '" + strMessage + "'";
DB2Command cmdSearchTable = new DB2Command(strSearch, db2Connection);
int nodeCount = 0;
nodeCount = int.Parse(cmdSearchTable.ExecuteScalar().ToString());
if (nodeCount == 0) {
Not Found
} else
{ Found
}
このコードは例外をスローします ({"EXECUTE または OPEN ステートメントのホスト変数の値は、対応する使用の範囲外です。"})
ただし、strNumbers.Length を使用するとエラーは発生しませんが、nodeCount はまだ 0 です。
ループする必要がありますか、それとも別のものですか?同じプログラムからデータベースに選択、挿入できるため、クエリとデータベース接続は問題ありません。
ありがとう
編集 - 私はこれを解決することができました(受け入れられた回答を参照)が、別の問題があります。「1234567」がデータベースにあるとしましょう。1 が返されたら問題ありません。入力がデータベースにない「5551234」の場合、0 が返されますが、これも問題ありません。ただし、問題は、入力が '1234567,5551234' の場合、5551234 がデータベースにない場合でも、1234567 がデータベースにあるため、Count は 1 を返します。
1234567 に対して 1 を出力し、5551234 に対して 0 を出力する方法はありますか?