فیلتر کردن DataGridView بدون تغییر در منبع داده
ابتدا دیتابیس Northwind را دانلود کرده و آن را حالت زیپ خارج کرده و در درایو C کپی کنید :
سپس یک دیتاگریدویو و یک TextBox به فرم اضافه کرده و مراحل زیر را برای اضافه ارتباط با بانک طی کنید:
برای به دست آوردن رشته اتصال با بانک هم ابتدا به صورت زیر بانک را انتخاب کرده و سپس مقدار موجود در خاصیت Connetcyion String را کپی کنید :
در مرحله بعد بر روی فرم دوبار کلیک کرده و کدهای زیر را در رویداد Load آن بنویسید :
private void Form1_Load(object sender, EventArgs e) { using (SqlConnection SqlConnection1 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\NORTHWND.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True")) { SqlConnection1.Open(); using (SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter("SELECT * FROM Employees", SqlConnection1)) { DataTable DataTable1 = new DataTable(); SqlDataAdapter1.Fill(DataTable1); dataGridView1.DataSource = DataTable1; } } }
سپس بر روی TextBox دو بار کلیک کرده و در رویداد TextChanged آن کد زیر را بنویسید:
private void textBox1_TextChanged(object sender, EventArgs e) { (dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("LastName = '{0}'", textBox1.Text); }
در کد بالا فرض بر این است که می خواهیم دیتاگرید را بر اساس مقادیر ستون LastName فیلتر کنیم. برنامه را اجرا کرده و نتیجه را مشاهده نمایید :