我想让一个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();
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();
(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的日期值。。