即使我知道我正在执行的确切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();
}
任何人都可以告诉我为什么会发生这种情况的理由。查询应该返回一个结果,我目前只是这样做以确保它正常工作,它似乎不是。任何帮助将不胜感激。
答案 0 :(得分:6)
调用ExecuteReader
后,读者会在之前找到第一个返回的记录。要阅读第一条记录,您需要致电Read()
dbReader.Read()
当然,如果有多行:
while (dbReader.Read())