即使我知道我正在执行的确切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();
}
谁能给我原因为什么会这样。该查询应返回单个结果,而我目前仅在执行此操作以确保它正常工作,而看起来似乎没有。任何帮助将不胜感激。
最佳答案
调用ExecuteReader
之后,将读取器的位置定位在第一个返回的记录之前。要读取第一条记录,您需要调用Read()
dbReader.Read()
或当然,如果有多行:
while (dbReader.Read())
关于c# - 错误: "No data exists for the row/column" using OdbcDataReader,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8622265/