我想让一个sqlcommand同时执行两条sql子句,并且把不同的执行结果赋给同一个数组的不同字段,请问如何实现?下面的代码只是我的假设,没有实现 sc = new SqlCommand();
                sc.Connection = cn;
                sc.CommandText= "select sum(volume) from saleInfo where datepart(yy,datetime)='" + DropDownList1.SelectedItem.Text + "' and datepart(mm,datetime)='" + a + "' ; select sum(sale) from saleInfo where datepart(yy,datetime)='" + DropDownList1.SelectedItem.Text + "' and datepart(mm,datetime)='" + a + "'";
                sr = sc.ExecuteReader();
                sr.Read();
                if (!sr.GetSqlDouble(0).IsNull)
                {
                    month[i - 1] = (double)sr.GetValue(0);
                    month[i + 11] = (double)sr.GetValue(1);//这句有错
                }
                sr.Close();

解决方案 »

  1.   

    分成2个sqlCommand执行,或者用一条Union All组合的Sql
      

  2.   

    呵呵,你可以这样写,类似select (select sum(volume) from ........) as 合计一,
      (select select sum(volume) from ........) as 合计二
    出来的就是一个有两列(这两列的名字你也已经定义好了)的记录。
    另外你的代码可能很没有效率。如果数据比较多,那么写“datepart(yy,datetime)=”这类代码就无法使用到在datetime上的索引,很可能是一个bug。一个好的能够使用到索引的代码应该是类似yy between ddddd and dddd这样的,其中这个dddd是 DateTime.Parse(DropDownList1.SelectedItem.Text)然后使用ToString转换为sql server的日期值。。
      

  3.   

    yy between ddddd and dddd   -->  datetime between ddddd and dddd