sqlstr1 = "select 主机数量 from view_Modify  where (有查询条件,这里就不写了)
 我数据库中的“主机数量”字段中放的是整数!
想在vs中,用c#语言实现,选出得一列中所有行值相加,也就是想得到这列的总和

解决方案 »

  1.   

    那不就是 sqlstr1 = "select SUM(主机数量) from view_Modify  where (有查询条件,这里就不写了)  GROUP BY 主机数量
      

  2.   

    select sum(主机数量) from view_Modify  where  1=1
      

  3.   

    sqlstr1 = "select SUM(主机数量) AS 主机数量 from view_Modify  where (有查询条件,这里就不写了) 
      

  4.   

    sqlstr1 = "select sum(主机数量) from view_Modify  where.."
      

  5.   

    那不就是 sqlstr1 = "select SUM(主机数量) from view_Modify  where (有查询条件,这里就不写了)  GROUP BY 主机数量 
     这样能求出总和,但是下面的我怎样才能把这个数取出来用?
      

  6.   

     protected string zj_count(Object count)
        {
            YSZC.DAL data = new YSZC.DAL();
            SqlConnection con;
            con = data.DBConnection;
            string sqlstr;
            sqlstr = "select sum(主机数量) from view_Modify where (查询条件)
            con.Open();
            Int32 amount;
            SqlCommand cmd1 = new SqlCommand(sqlstr, con);
            amount = cmd1.ExecuteNonQuery();
            return Convert.ToString(s).Trim();
        }
    最后求的数要在这个return中,大家看看我这样做错在了什么地方,或者有更好的办法也行
      

  7.   

    protected string zj_count(Object count) 
        { 
            YSZC.DAL data = new YSZC.DAL(); 
            SqlConnection con; 
            con = data.DBConnection; 
            string sqlstr; 
            sqlstr = "select sum(主机数量) from view_Modify where (查询条件) 
            con.Open(); 
            Int32 amount; 
            SqlCommand cmd1 = new SqlCommand(sqlstr, con); 
            amount = cmd1.ExecuteNonQuery(); 
            return Convert.ToString(amount).Trim(); 
        } 
    最后求的数要在这个return中,大家看看我这样做错在了什么地方,或者有更好的办法也行
      

  8.   

    ado.net中的**sqlcommand.executescalar,**根据不同数据库会略有不同
      

  9.   

    amount = cmd1.ExecuteNonQuery(); 
    ---返回值是影响行数,不是你的查询值!!!!楼主你会不会用msdn?
      

  10.   

    http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.executescalar.aspx
    请看看
      

  11.   

    取出来,这样,
    original api:  int result=(int)sc.ExecuteScalar();linq:
      
      var v=from row in this.dc.yourTable
              select row.主机数理;
      int result=0;
      foreach(var item in v){
        result+=item;
      }    
      

  12.   

    我回来啦,这么简单个问题还没闹出个结果啊。。看我代码!
                SqlConnection con = new SqlConnection(你的连接字符串);
                con.Open();
                SqlCommand comm = new SqlCommand(" select SUM(主机数量) from view_Modify  where (有查询条件,这里就不写了)  GROUP BY 主机数量 
     ", con);---这里记得要有group by   否则sql文是不正确的
                int result=Convert.ToInt32(comm.ExecuteScalar());
      

  13.   

    result 就是你要return的结果。。