1. 程式人生 > >數據庫數據篩選方案

數據庫數據篩選方案

class rom filter where 數據復制 remove 等等 pan imp

一 如果只進行單一的篩選,比如只對日期進行篩選,顯示一定時期內的數據等等。這樣可以直接用數據庫語句經行篩選

例子:

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;
        }

數據庫數據篩選方案