SqlDataReader [0] 为空
我想在文本字段中显示 SqlDataReader 的第一行(它是数据库返回的唯一行/列)。我认为这是正确的语法,但我收到“无数据”错误。我可以确保正在使用的 sql 查询肯定会返回答案,我已经在 SQL Server 中检查过它。
SqlCommand sqlCommand = new SqlCommand(sqlQuery, sqlConnection);
sqlConnection.Open();
SqlDataReader reader = sqlCommand.ExecuteReader();
Label1.Text = reader[0].ToString();
reader[0]
似乎没有显示任何内容。
I'm wanting to display the first row of a SqlDataReader
(its the only row/column the database returns) in a text field. I thought this was the correct syntax but i get 'no data' error. I can ensure that the sql query being used should definitely return an answer, i've checked it in SQL Server.
SqlCommand sqlCommand = new SqlCommand(sqlQuery, sqlConnection);
sqlConnection.Open();
SqlDataReader reader = sqlCommand.ExecuteReader();
Label1.Text = reader[0].ToString();
reader[0]
doesn't seem to show anything.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果我记得正确的话,您需要实际读取数据:
您可以迭代或仅使用第一个值。
You need to actually read the data if I remember correctly using:
Which you can iterate through or just use the first value.
您需要调用
read()
来移动到行。它通常用作在您的情况下在分配给标签之前放置
reader.read()
。*还要记住始终关闭它 - 因此在
using
块中使用它。 *You need to call
read()
to move to the rows. It is usually used asIn you case put
reader.read()
before assigning to label.*Also remember always to close it - so use it in
using
block. *请阅读 DataReader 的文档。索引器提供基于序号/列号的值。由于您尚未开始(或正在)浏览阅读器,因此它将是空的。
Please read the documentation for DataReader. The indexer provides a value based on the ordinal/column number. As you have not started (or are) moving through the reader, it will be empty.