Я пытаюсь подсчитать все записи в моей базе данных DB2 с запросом, в котором используется содержимое массива для поиска в таблице.Выберите запрос подсчета в 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 или открытое заявление выходит за пределы диапазона, соответствующий его использования.»})
Однако, если я использую strNumbers. Длина не вызывает ошибку, но nodeCount это все равно 0.
Нужно ли мне петли или это что-то еще? Запрос и подключение к базе данных прекрасны, поскольку я могу выбрать, Вставить в базу данных из той же программы.
Благодаря
EDIT - мне удалось решить эту (см принятый ответ), но теперь есть еще одна проблема. Давайте скажем, что «1234567» находится в базе данных после того, как он вернет 1, что хорошо. Если вход «5551234», который отсутствует в базе данных, он возвращает 0, что также отлично. Однако проблема кроется в том, что если вход «1234567,5551234», граф вернет 1, поскольку в базе данных 1234567, хотя 5551234 нет.
Есть ли способ вывода 1 для 1234567, а затем 0 для 5551234?
Db2 и MySQL - разные продукты. Не помещайте те продукты, которые не задействованы ... – jarlh
'strNumbers' - массив, поэтому вы не можете конкатенировать строку и массив. какова ожидаемая строка запроса? –
Ожидаемый ввод от пользователя будет числом, может быть 1234567 или 1234567, 7654321 и т. Д. Я хочу подсчитать базу данных для них. Все они хранятся в массиве strNumbers. @HariPrasad – user6097989