
针对DataGridView中已进行过数据绑定,即已向DataGridView中添加了一些数据,可以结合Linq查询,并让匹配查询的行高亮显示,具体实现如下:
using Systemusing System.Collections.Generic
using System.Linq
using System.Windows.Forms
namespace Maxes_PC_Client {
public partial class frmWelcome : Form {
private int beforeMatchedRowIndex = 0
public frmWelcome()
{
InitializeComponent()
}
private void frmWelcome_Load(object sender, EventArgs e) {
this.dataGridViewInit()
}
/// <summary>
/// DataGridView添加数据、初始化
/// </summary>
private void dataGridViewInit() {
Dictionary<String, String> map = new Dictionary<String, String>()
map.Add("Lily", "22")
map.Add("Andy", "25")
map.Add("Peter", "24")
// 在这里必须创建一个BindIngSource对象,用该对象接收Dictionary<T, K>泛型集合的对象
BindingSource bindingSource = new BindingSource()
// 将泛型集合对象的值赋给BindingSourc对象的数据源
bindingSource.DataSource = map
this.dataGridView.DataSource = bindingSource
}
private void SearchButton_Click(object sender, EventArgs e) {
if (this.KeyWord.Text.Equals("")) {
return
}
// Linq模糊查询
IEnumerable<DataGridViewRow> enumerableList = this.dataGridView.Rows.Cast<DataGridViewRow>()
List<DataGridViewRow> list = (from item in enumerableList
where item.Cells[0].Value.ToString().IndexOf(this.KeyWord.Text) >= 0
select item).ToList()
// 恢复之前行的背景颜色为默认的白色背景
this.dataGridView.Rows[beforeMatchedRowIndex].DefaultCellStyle.BackColor = System.Drawing.Color.White
if (list.Count > 0) {
// 查找匹配行高亮显示
int matchedRowIndex = list[0].Index
this.dataGridView.Rows[matchedRowIndex].DefaultCellStyle.BackColor = System.Drawing.Color.Yellow
this.beforeMatchedRowIndex = matchedRowIndex
}
}
}
}
datagridview1.dataresouce=
ds.Tables[0]
或者你在sda.Fill(ds)时改为
sda.Fill(ds,"tableName")
然后datagridview1.dataresouce
=
ds.Tables["tableName"]即根据关键字索引来找到对应的DataTable
记住,DataSet相当于本地数据库
里面有
Tables集合,是一张张本地数据表DataTable,而GridView显示的正是DataTable,所以你只要对应到一张DataTable即可
首先,根据需求调用方法对学生管理系统数据库进行增删改查 *** 作最后,根据获取的学生对象,赋值到datagridview.datasource里边,在赋值之前,对datagridview.datasource=null清空一下再显示
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)