本来我查找第一次的时候是正确的:
第一次查找的代码:
select convert(varchar(7),日期,111) as '年月', sum(金额) as '总金额' from 日常消费表 group by convert(varchar(7),日期,111)
如图:

第二次查找执行的代码:
String.Format("select sum(金额) from 日常消费表 where 日期 between '{0}' and '{1}'",dateTime_begin.Value,dateTime_end.Value);
可是第二次选择其他的查询的方法的时候,就出来了很多空的列:
如图:

求教,怎么解决?
我的显示到dataGridview的代码如下:
public void DataDeal(string sql, DataGridView dataGrid_record)//连接数据处理函数
{//使用DataSet同时读取多条信息
try
{
//conn.Open();
//ada = new SqlDataAdapter(sql, conn);//创建数据适配对象
//ada.Fill(ds, "月固定收入表");//填充数据集对象
//dataGrid_record.DataSource = ds.Tables["月固定收入表"];//指定数据源
//ds.Tables["月固定收入表"].Clear();//避免查找的时候出现重复的现象
//ada = new SqlDataAdapter(sql, conn);//创建数据适配对象
//ada.Fill(ds, "月固定收入表");//填充数据集对象
//dataGrid_record.DataSource = ds.Tables["月固定收入表"];//指定数据源
conn.Open();
ada = new SqlDataAdapter(sql, conn);//创建数据适配对象
DataSet ds1 = new DataSet();
ada.Fill(ds1, "月固定收入表");//填充数据集对象
dataGrid_record.DataSource = ds.Tables["月固定收入表"];//指定数据源
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
finally
{
conn.Close();//关闭数据库连接
}
}
------解决思路----------------------
第二次查询 的时候,你是不是用了同一个数据集,之前的列没有清空!
------解决思路----------------------
同意楼上 赋值前判断 是否有列数,有则清空 。
------解决思路----------------------
你第二次执行查询的SQL语句,是输出一个sum(金额)的表,GridView你的截图显示日期、消费类型都有值,显然这个结果不是你贴的SQL的输出。
你单步调试一下,第二次执行查询的时候,DataSet输出的结果集是什么东东?!