Ошибка: "Нет данных для строки / столбца" с использованием OdbcDataReader
Несмотря на то, что я знаю, что есть данные для точного SQL-запроса, который я выполняю, для того факта, что я выполняю SQL-запрос непосредственно в базе данных, я постоянно получаю исключение о том, что данных не существует. Мой код ниже:
try
{
dbConnection.Open();
// Process data here.
OdbcCommand dbCommand = dbConnection.CreateCommand();
dbCommand.CommandText = "select forename from tblperson where personcode in (select clientcode from tblclient) and surname = '######'";
OdbcDataReader dbReader = dbCommand.ExecuteReader();
Console.WriteLine(dbReader.GetString(0));
dbReader.Close();
dbCommand.Dispose();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
dbConnection.Close();
}
Может ли кто-нибудь дать мне причины того, почему это будет происходить. Запрос должен возвращать один результат, и в настоящее время я делаю это только для того, чтобы убедиться, что он работает, а это не так. Любая помощь будет принята с благодарностью.
1 ответ
Решение
После ExecuteReader
вызывается, читатель позиционируется перед первой возвращенной записью. Чтобы прочитать первую запись нужно позвонить Read()
dbReader.Read()
Или, конечно, если есть несколько строк:
while (dbReader.Read())