A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

怎么用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输出:

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

5 个回复

倒序浏览
using (SqlDataReader reader = cmd.ExecuteReader())
       {
           if(reader.read())
            {
                TextBox1.Text=reader.Getstring(reader.GetOrdinal("平均成绩"));
             }
       }

评分

参与人数 1技术分 +1 收起 理由
李荣壮 + 1

查看全部评分

回复 使用道具 举报
直接执行语句输出就可以了把,
试试 MessageBox.show(cmd.ExecuteScalar());
或者是
TextBoxName.text=Convert.ToString(cmd.ExecuteScalar());

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
本帖最后由 许前刚 于 2011-12-4 10:03 编辑

输出平均成绩这样的单个值最好用ExecuteScalar()方法。
cmd.ExecuteScalar);返回的是查询结果的第一行第一列的值。
然后把这个返回值传给messagebox或textBox。

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
完整代码看下边:
  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.             }
复制代码

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
最好用ExecuteScalar()方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马