在asp.net c#中显示sql结果中的各个列

时间:2013-07-08 16:28:23

标签: c# asp.net

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

我尝试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();

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

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