數據庫數據篩選方案
阿新 • • 發佈:2017-08-08
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的屬性來進行顯示,當然也可以利用數據庫中表的特有屬性來經行判斷(兩個自己選一個)。privatevoid 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; }
數據庫數據篩選方案