当我在调试器中看到列时,没有读取列和数据

时间:2014-04-18 18:39:43

标签: c# .net sqldatareader

我试图从SQLDataReader中读取一些内容..现在它出现错误说"当没有数据存在时无效的读取尝试"。但是当我进入调试器(附图)。我清楚地看到了我想要阅读的列和数据。我确定MyStatColumn有" p_era"在那里。我已经尝试了3种阅读专栏的方法,但他们都错了......任何人都可以帮忙吗?

enter image description here

            string MyStatColumn;

            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                connection.Open();

                using (SqlCommand command = new SqlCommand(_sql, connection))
                {
                    using (RecordSet = command.ExecuteReader())
                    {
                        if (!RecordSet.HasRows)
                        {
                            return "No Data";
                        }
                        else
                        {
                            MyStatRankLeague = RecordSet[MyStatColumn + "_LeagueRank"].ToString();  //errors
                            MyStatRankOverall = RecordSet[MyStatColumn + "_MLBRank"].ToString();  //errors
                            MyStatRankOverall = AppendRankSuffix(MyStatRankOverall);  //errors
                        }
                    }
                }
            }
        }

1 个答案:

答案 0 :(得分:4)

在尝试从中读取数据之前,您需要调用RecordSet.Read()。首次打开读者时,它们位于第一条记录之前,并且至少需要调用一次.Read才能将它们推进到结果集中的第一条记录。