黑马程序员技术交流社区

标题: 怎么用MessageBox或者TextBox输出select的查询结果 [打印本页]

作者: 张彪    时间: 2011-12-4 01:26
标题: 怎么用MessageBox或者TextBox输出select的查询结果
怎么用MessageBox或者TextBox输出select的查询结果
SqlConnection conn = new SqlConnection(@"Data Source=PC2011102013SPQ\SQLEXPRESS;Initial Catalog=T_Students;Integrated Security=True");
                conn.Open();
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select avg(Score)as平均成绩 from T_Students";
执行了这些代码,怎么可以把cmd.CommandText = "select avg(Score)as平均成绩 from T_Students";得执行结果用MessageBox或者TextBox输出:

作者: 王硕    时间: 2011-12-4 09:35
using (SqlDataReader reader = cmd.ExecuteReader())
       {
           if(reader.read())
            {
                TextBox1.Text=reader.Getstring(reader.GetOrdinal("平均成绩"));
             }
       }
作者: 林洲    时间: 2011-12-4 09:35
直接执行语句输出就可以了把,
试试 MessageBox.show(cmd.ExecuteScalar());
或者是
TextBoxName.text=Convert.ToString(cmd.ExecuteScalar());
作者: 许前刚    时间: 2011-12-4 10:02
本帖最后由 许前刚 于 2011-12-4 10:03 编辑

输出平均成绩这样的单个值最好用ExecuteScalar()方法。
cmd.ExecuteScalar);返回的是查询结果的第一行第一列的值。
然后把这个返回值传给messagebox或textBox。
作者: 张连印    时间: 2011-12-6 21:27
完整代码看下边:
  1. using (SqlConnection con = new SqlConnection())
  2.             {
  3.                 con.ConnectionString = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;//连接字符串
  4.                 using (SqlCommand cmd = con.CreateCommand())
  5.                 {
  6.                     con.CreateCommand();
  7.                     con.Open();
  8.                     cmd.CommandText = "select avg(score) from t_student";
  9.                     int score=Convert.ToInt16( cmd.ExecuteScalar());
  10.                     MessageBox.Show("平均分是:"+score.ToString());
  11.                     //tb_avgScore.Text=score.ToString();
  12.                 }
  13.                
  14.             }
复制代码

作者: 王旭    时间: 2011-12-7 09:44
最好用ExecuteScalar()方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2