我正在使用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();
任何帮助将不胜感激。
答案 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
只会提取一个值。您需要使用DataReader
或DataAdapter
从数据库中获取多个值。