فیلتر کردن 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 فیلتر کنیم. برنامه را اجرا کرده و نتیجه را مشاهده نمایید :
با سلام
ضمن تشکر از مطالب مفیدتون، میخواستم بدونم اگه بخوایم همین مقادیر فیلتر شده در دیتاگرید ویو رو پرینت بگیریم، چه باید بکنیم؟
پیشاپیش ممنون از پاسخگویی
سلام و ممنون از لطفتون، ممنون میشم سوالتونو تو بخش پرسش و پاسخ مطرح بفرمایید
مهندس جان اگه بخوام از گزینه های مختلف در دو یا چند ستون برای جستجو وفیلتر استفاده کنم چی؟
مثلا اگه حرفی از نام یا فامیل یا عددی از شماره ملی یا تلفن را در تسکت باکس زدم براساس اون فیلتر کنه
چه باید گرد
الیته ضمن تشکر از مطالب خوبتون