如何使用executeReader()方法来检索一个单元格的值
本文关键字:一个 单元格 何使用 executeReader 方法 检索 | 更新日期: 2023-09-27 17:53:18
我需要执行以下命令并将结果传递给标签。我不知道如何使用阅读器。有人能帮我一下吗?
String sql = "SELECT * FROM learer WHERE learer.id = " + index;
SqlCommand cmd = new SqlCommand(sql,conn);
learerLabel.Text = (String) cmd.ExecuteReader();
正如您所看到的,我创建了SQL语句并执行了它,但是它没有工作。为什么?
控制台显示:
不能隐式SqlDataReader to字符串…
如何获得所需的结果作为字符串,使标签可以正确显示它
using (var conn = new SqlConnection(SomeConnectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT * FROM learer WHERE id = @id";
cmd.Parameters.AddWithValue("@id", index);
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
{
learerLabel.Text = reader.GetString(reader.GetOrdinal("somecolumn"))
}
}
}
不建议使用DataReader
和Command.ExecuteReader
仅从数据库中获取一个值。相反,您应该像这样使用Command.ExecuteScalar
:
String sql = "SELECT ColumnNumber FROM learer WHERE learer.id = " + index;
SqlCommand cmd = new SqlCommand(sql,conn);
learerLabel.Text = (String) cmd.ExecuteScalar();
关于连接数据库和管理数据的更多信息
ExecuteScalar()
是您这里需要的
重复问题,基本上是说用ExecuteScalar()
代替