如何使用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字符串…

如何获得所需的结果作为字符串,使标签可以正确显示它

如何使用executeReader()方法来检索一个单元格的值

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"))
        }
    }
}

不建议使用DataReaderCommand.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()代替