Попытка отображения значения из базы данных Access для отображения в ListBox в форме. Предыдущий формат отправляет эту форму в строку, которая является «prevval», для ссылки на код. Не совсем уверен, в чем проблема? Пожалуйста помоги!! QuestionID технически является номером, но это проблема, если im делает его строкой, потому что она представлена в ListBox?Отобразить строку из 'System.Data.OleDb.OleDbDataReader'. Доступ к базе данных до формы C#
Ошибка System.Data.OleDb.OleDbException (0x80040E10): Нет значение дано для одного или более требуемых параметров
Код:
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string query = "SELECT QuestionID FROM tblQuestions WHERE (Topic='" + prevval + "')";
command.CommandText = query;
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
listQuestions.Items.Add(reader.ToString());
}
connection.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error " + ex);
}
Каков тип столбца «Тема» и каково значение «prevval» точно? И, конечно же, вы всегда должны использовать [параметризованные запросы] (http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/). Этот тип конкатенаций строк открыт для [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) атак. Также 'reader.ToString()' возвращает это полное имя класса вместо данных внутри него. Вам нужно использовать 'reader [0]' или как лучший метод GetXXX. –
Где исключается исключение? –
prevval может варьироваться от разных слов, в зависимости от слова, будет зависеть от того, какой QuestionID будет получен и что будет отображаться дальше. – nivlem