即使我知道我正在执行的确切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/

10-11 04:28