Вопрос:

Возврат многочисленных результатов SQL в массив C #

c# sql asp.net

123 просмотра

1 ответ

215 Репутация автора

Я уже видел несколько вопросов о подобных вещах, но всякий раз, когда я что-то пробую, это просто не работает с этим конкретным примером. У меня настроена удаленная база данных SQL SERVER, и в ней более 2000 строк.

Это мой C #:

command.Connection = connectionString;
command.CommandType = CommandType.Text;
command.CommandText = "SELECT IconUrl FROM Items WHERE DefIndex IN " + iconSqlString;
connection.Open();
string iconString = command.ExecuteScalar().ToString();
connection.Close();

У меня есть настроенный SqlConnection и все такое, я просто не думаю, что его нужно включать.

iconSqlString в формате (32, 126, 68). Строка содержит более 150 элементов и каждый раз отличается. Мне нужно вернуть IconUrl для всех элементов в строке. Текущий запрос по какой-то причине возвращается только к IconUrl, для элемента со значением 35 на 51-й позиции (из 196). Я знаю, что iconString имеет формат строки, но это только для целей тестирования, я ожидал, что он вернет все результаты, разделенные запятыми или что-то еще. Я хочу вернуть все возможные значения в массив, чтобы потом вызываться с чем-то вроде sqlItem [5]. Как бы я это сделал?

Автор: SlothGod Источник Размещён: 08.11.2017 11:56

Ответы (1)


3 плюса

134 Репутация автора

Решение

ExecuteScalar для одного результата, вам нужно будет использовать ExecuteReader вместо.

Также, как примечание, вы никогда не должны использовать переменные для выполнения запроса из-за атаки, называемой SQLI или SQL Injection . Вот ссылка с некоторыми примерами того, как выполнять параметризованные запросы .

Автор: SniperLegacy Размещён: 09.11.2017 12:32
Вопросы из категории :
32x32