C#中很模糊查询DGV中数据的两种方法
(1)使用CopeTo和datatable.select用法
private void textBox1_TextChanged(object sender, EventArgs e) { //下拉框,选择查询条件 string condition_text = this.cbo_ChaXunTiaoJian.Text.ToString().Trim(); //文本框,填写关键字 string key_text = this.txt_GuanJianZi.Text.ToString().Trim(); string column = ""; if (condition_text != "" && key_text != "") { //定义数组,存储下拉框中的现有项 string[] condition_array = new string[cbo_ChaXunTiaoJian.Items.Count]; cbo_ChaXunTiaoJian.Items.CopyTo(condition_array, 0); //定义关键字数组,以下三个字段为DGV中的列名 string[] key_array = new string[3] { "KeHuMingCheng","ChanPinBianHao", "ChanPinMingCheng" }; for (int i = 0; i < condition_array.Length; i++) { if (condition_array[i].ToString().Trim() == condition_text) { column = key_array[i].ToString().Trim(); } } BindingSource mysource = new BindingSource(); mysource.DataSource = dt_XiaoShou_BaoJia.Select(this.dgv_baojia.Columns[column].DataPropertyName + " like " + "'%" + key_text + "%'").CopyToDataTable(); this.dgv_baojia.DataSource = mysource; } }
(2)使用 DataTable和 DataView 模糊查询
private void tsptxt_KeyWord_TextChanged(object sender, EventArgs e) { DataTable dt = dt_DangQianPaiBan; DataView dv = new DataView(); dv = dt.DefaultView; if (this.tsCbo_ChaXunTiaoJian.Text == "护士编号") { dv.RowFilter = "编号 like" + "'%" + this.tsptxt_KeyWord.Text.Trim() + "%'"; } else if (this.tsCbo_ChaXunTiaoJian.Text == "护士姓名") { dv.RowFilter = "姓名 like" + "'%" + this.tsptxt_KeyWord.Text.Trim() + "%'"; } this.DGV_DangQianPaiBan.DataSource = dv; }
(3)在DGV中显示全部数据
DataTable dt = dt_DangQianPaiBan; DataView dv = new DataView(); dv = dt.DefaultView; dv.RowFilter =“”; this.DGV_DangQianPaiBan.DataSource = dv;