定义全局变量Sql,初始值为"select * from table where ID = 0",在这里加ID = 0查询不到记录的条件,是为了下面的操作.第一次查询: Sql += " or (产品名称 = '第一次的查询值' and 产品单价 = '第一次的查询值' and 订购数量 = '第一次的查询值')" 第二次查询: Sql += " or (产品名称 = '第二次的查询值' and 产品单价 = '第二次的查询值' and 订购数量 = '第二次的查询值')"
在Page_Load等方法的外面写个protected static DataSet ds = new DataSet(); 后面的每次查询时候da.Fill(ds);会自动把新记录填进去,保留以前所有的查询记录,da是sqlDataAdapter
顶下吧,datasource合起来嘛??
select * from [user] where id='1' union select * from [user] where namd='LZ'datagridview.datasource = ...
select * from [user] where id='1' union select * from [user] where namd='LZ' union.....datagridview.datasource = datatable name
如果2次查询独立的2个集合。最后还可以对这2个集合进行组合查询。很强大的功能。
那个系统还能保存用户的查询状态,就是比如这次查询结束,关闭了网页。下次打开,还会显示,除非客户主动删除了以前查询的集合我感觉那个系统会把用户查询用的sql语句保存到数据库中。然后根据用户的意图组合sql语句。
在你的内存中缓存一个 datatable 查询一次就往 DT 里面增加记录
然后gridview的数据源 设置成DT
例如:
第一次查询企业名称为"a"的记录
第二次查询企业名称为"b"的记录
那么显示两次查询的结果:
select * from table where 企业名称 = 'a' or 企业名称 = 'b'
Sql += " or (产品名称 = '第一次的查询值' and 产品单价 = '第一次的查询值' and 订购数量 = '第一次的查询值')"
第二次查询:
Sql += " or (产品名称 = '第二次的查询值' and 产品单价 = '第二次的查询值' and 订购数量 = '第二次的查询值')"
后面的每次查询时候da.Fill(ds);会自动把新记录填进去,保留以前所有的查询记录,da是sqlDataAdapter
union
select * from [user] where namd='LZ'datagridview.datasource = ...
union
select * from [user] where namd='LZ'
union.....datagridview.datasource = datatable name