这就是我遇到问题的方法,我想知道我的网站有多少用途
我试图这样做。
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();
答案 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();
当您从查询中获取单个标量值时,无需打开阅读器并检查返回的行