0

我正在使用 c# asp.net 编写一个简单的应用程序。我得到了列的平均值。如何从结果中获取单个值并将其显示在新标签 ( label1, label2, label3....) 中?

我试过ExecuteScalar().ToString();了,但它只返回第一列。

下面是我的代码:

SqlConnection con;
con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\STATDB.MDF;Integrated Security=True;User Instance=True");
SqlCommand com = new SqlCommand();

SqlDataAdapter da = new SqlDataAdapter();
string result = "SELECT AVG(p_tan) AS p_tang, AVG(e_tan) AS e_tang, AVG(p_rel) AS p_reli FROM statistics";
SqlCommand showresult = new SqlCommand(result, con);
con.Open();

Label1.Text = showresult.ExecuteScalar().ToString();
//Label2.Text = p_tang
//Label3.Text = e_tang
//Label4.Text = p_reli
con.Close();

任何帮助将不胜感激。

4

2 回答 2

3

使用showresult.ExecuteReader()然后迭代该行以获取值

SqlDataReader reader=showresult.ExecuteReader();
while (reader.Read())
{
  Label1.Text= reader["p_tang"].ToString().Trim();
  Label2.Text= reader["e_tang"].ToString().Trim();
  Label3.Text= reader["p_reli"].ToString().Trim();
}
于 2013-07-08T16:30:06.730 回答
0

ExecuteScalar只会拉一个值。您将需要使用 aDataReaderDataAdapter从数据库中获取多个值。

于 2013-07-08T16:32:08.090 回答