SqlDataReader [0]为空

时间:2010-11-01 12:03:39

标签: asp.net sql sqldatareader

我想在文本字段中显示SqlDataReader的第一行(它是数据库返回的唯一行/列)。我认为这是正确的语法,但我得到'没有数据'错误。我可以确保使用的sql查询肯定会返回一个答案,我已在SQL Server中检查过它。

SqlCommand sqlCommand = new SqlCommand(sqlQuery, sqlConnection);
sqlConnection.Open();
SqlDataReader reader = sqlCommand.ExecuteReader();
Label1.Text = reader[0].ToString();

reader[0]似乎没有显示任何内容。

3 个答案:

答案 0 :(得分:4)

如果我没记错,你需要实际读取数据:

reader.Read()

您可以迭代或仅使用第一个值。

答案 1 :(得分:2)

您需要致电read()以移至行。它通常用作

   while(reader.read())
   {
        // do something
   }

在你的情况下,在分配给标签之前加上reader.read()

* 还要记住要关闭它 - 所以在using块中使用它。 *

答案 2 :(得分:0)

请阅读DataReader的文档。索引器根据序数/列号提供值。由于你还没有开始(或正在)通过阅读器,它将是空的。