num行输入的数量有问题

时间:2014-12-13 22:20:55

标签: c#

这就是我遇到问题的方法,我想知道我的网站有多少用途

我试图这样做。

SqlConnection conn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
    SqlCommand cmd1 = new SqlCommand();
    cmd1.Connection = conn1;

    cmd1.CommandText = "SELECT COUNT(*) FROM brugere";

    conn1.Open();
    SqlDataReader reader3 = cmd1.ExecuteReader();
    if (reader3.HasRows)
    {
        LabelBrugerantal.Text = reader3["id"].ToString();
    }
    conn1.Close();

这样会出现错误:

ID

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.IndexOutOfRangeException:id

来源错误:

Line 67:         if (reader3.HasRows)
Line 68:         {
Line 69:             LabelBrugerantal.Text = reader3["id"].ToString();
Line 70:         }
Line 71:         conn1.Close();

1 个答案:

答案 0 :(得分:1)

您的查询未返回任何列id。你可以这样做:

cmd1.CommandText = "SELECT COUNT(*) AS id FROM brugere";

但这听起来很奇怪: - )

执行所需操作的首选方法是SqlCommand.ExecuteScalar。你的代码就像这样(未经测试):

cmd1.CommandText = "SELECT COUNT(*) FROM brugere";
// ...
LabelBrugerantal.Text = ((Int32)cmd1.ExecuteScalar()).ToString();

当您从查询中获取单个标量值时,无需打开阅读器并检查返回的行