数据库数据筛选方案

一 如果只进行单一的筛选,比如只对日期进行筛选,显示一定时期内的数据等等。这样可以直接用数据库语句经行筛选

 例子:

string sqlstr=string.fomat("select * from table1 where date  between {0} and {1}",datetimepiker1.value.toshortdatestring(),datetimepiker2.value.toshortdatestring());
二、如果经行多项条件筛选,比如有日期,有打折或正价,等等,这样的话最好把数据复制到一个新的表中,然后利用DATASET的属性来进行显示,当然也可以利用数据库中表的特有属性来经行判断(两个自己选一个)。
复制代码
private void Filter(bool isSpeed)
        {
           // DataView dv = new DataView(ds.Tables [0]);
            DataTable dt=ds .Tables[0];//提取数据

            if (isSpeed == true)
            {
                // dv.RowFilter = "aveSpeed='false'";
                dt.Columns.Remove("aveSpeed");
                //dt.Rows["aveSpeed"].ToString () = 60;
                DataRow[] drArr = dt.Select("AveSpeed>'60'");//筛选数据
               // DataRow[] drArr= dt.Select("'++'<datatime");

                //筛选显示
                DataTable dtNew = dt.Clone();
                for (int i = 0; i < drArr.Length; i++)
                {
                    dtNew.ImportRow(drArr [i]);

                }
                this.dgvRoadReport .DataSource =dtNew ;
            }

            else
            {
                //dv.RowFilter = "aveSpeed='true'";
            }
            
            

        }
复制代码


利用数据库属性的话(DATAVIEW 自己百度吧):

复制代码
 private void Filter(Boolean isDiscount)
        {
            DataView dv = new DataView(ds.Tables[0]);
            if (isDiscount == true)
            {
                dv.RowFilter = "是否特价='false'";
            }
            else
            {
                dv.RowFilter = "是否特价='true'";
            }
            // 重新绑定数据源
            this.dgvCommodity.DataSource = dv;
        }
复制代码

 

 

 

posted @   捡贝壳的孩子  阅读(2354)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示