private void GetNowPayMoney(List<Sys.Model.StoreInfoModel> li) 
    { foreach (Sys.Model.StoreInfoModel item in li)
        {
         string sql = string.Format(@"select ISNULL(SUM(Payment),0) as NowPayMoney from DataTradeInfo where DATEDIFF(DAY, paytime, getdate()) = 0 AND StoreID={0};", item.StoreID);                        
        //获得当日的数据
        DataSet ds = Sys.SQLHelper.SQLExecProc.SqlDataSet(sql.ToString());    
        rep.DataSource = ds;
        rep.DataBind();
        }
   }
PS:我们老大要我吧List<Sys.Model.StoreInfoModel>根据这个表的Storid吧去查询这个ID对应的总数,全部展现在repter控件上。

解决方案 »

  1.   

    string sql = string.Format(@"select ISNULL(SUM(Payment),0) as NowPayMoney from DataTradeInfo where DATEDIFF(DAY, paytime, getdate()) = 0 AND StoreID in '{0}';", string.Join("','",li.Select(p=>p.StoreID));
      

  2.   

    但是repter 里面还是一条数据。我是希望循环之后把他全部加载到repter 里面去。比如说用什么变量吧 返回的dataset 装上循环完了,在用 rep.DataSource = 变量; rep.DataBind(); 
      

  3.   

    我的意思是不用 foreach (Sys.Model.StoreInfoModel item in li)而是直接用 StoreID in (StoreIDs) 的方式,一次性查出来。
      

  4.   

    那就把foreach去掉 这样子写sql
     string sql = "select ISNULL(SUM(Payment),0) as NowPayMoney,StoreID from DataTradeInfo where DATEDIFF(DAY, paytime, getdate()) = 0 group by StoreID";                        
      

  5.   

    你自己知道用in 那么你在where里面的条件中 时间的后面加上 and StoreID in (StoreIDs)  其中StoreIDs要首先把串出来拼成23,45,67 这样的字符串格式,相信这个你应该会的
      

  6.   

    你自己知道用in 那么你在where里面的条件中 时间的后面加上 and StoreID in (StoreIDs)  其中StoreIDs要首先把串出来拼成23,45,67 这样的字符串格式,相信这个你应该会的
      

  7.   

    你自己知道用in 那么你在where里面的条件中 时间的后面加上 and StoreID in (StoreIDs)  其中StoreIDs要首先把串出来拼成23,45,67 这样的字符串格式,相信这个你应该会的
    还是不懂还是怎么了 
      

  8.   

    你自己知道用in 那么你在where里面的条件中 时间的后面加上 and StoreID in (StoreIDs)  其中StoreIDs要首先把串出来拼成23,45,67 这样的字符串格式,相信这个你应该会的
    还是不懂还是怎么了 
    哥,我错了, 请找楼主。
      

  9.   

    你自己知道用in 那么你在where里面的条件中 时间的后面加上 and StoreID in (StoreIDs)  其中StoreIDs要首先把串出来拼成23,45,67 这样的字符串格式,相信这个你应该会的
    还是不懂还是怎么了 
    哥,我错了, 请找楼主。
    我去我也回复错了,以为你楼主,没看到你也是回复,哥我也错了