منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تصفية Filter تاريخين في datagridview
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

لدي datagridview وفيها عمودان
الأول بداية التاريخ date1
الثاني نهاية التاريخ data2

كيف اعمل تصفية Filter للمعلومات بناء على التاريخين ؟
لم توضح كيف تم وضع البيانات في datagridview

ولم توضح نتيجة التصفية هل حذف الصفوف الغير مطابقة للفلتر أم ماذا

عموماً جرب هذا الكود
على افتراض تعبئة datagridview بطريقة يدوية
ونتيجة الفلتر هي بحذف الصفوف الغير مطابقة
PHP كود :
DateTime d1 Convert.ToDateTime("1/10/2018").Date;
DateTime d2 Convert.ToDateTime("1/22/2018").Date;
 
           
var rows dataGridView1.Rows.Cast<DataGridViewRow>()
 
   .Where(=> 
 
       d1.Date >= Convert.ToDateTime(x.Cells[0].Value).Date 
 
       d2.Date <= Convert.ToDateTime(x.Cells[1].Value).Date).ToArray();

dataGridView1.Rows.Clear();
dataGridView1.Rows.AddRange(rows); 
وهذا الكود لو المقارنة بتاريخ واحد
PHP كود :
DateTime d Convert.ToDateTime("1/10/2018").Date;

var 
rows dataGridView1.Rows.Cast<DataGridViewRow>()
 
   .Where(=>
 
       d.Date >= Convert.ToDateTime(x.Cells[0].Value).Date &
 
       d.Date <= Convert.ToDateTime(x.Cells[1].Value).Date
        
).ToArray();

dataGridView1.Rows.Clear();
dataGridView1.Rows.AddRange(rows); 
مرحباً اخى عبدالله

الطرق عديدة ساضع لك بعضها
يمكنك عمل فلتر عن طريق التالى
كود :
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = string.Format("Column1 >= #{0}# AND Column2 <= #{1}#", Convert.ToDateTime(textBox1.Text).Date, Convert.ToDateTime(textBox2.Text).Date);


كما يمكنك عمل عم طريق الكود التالى
كود :
           DataView dv = new DataView(dt);
           dv.RowFilter = "DateStart = #" + Convert.ToDateTime(textBox1.Text).Date + "# AND DateEnd = #" + Convert.ToDateTime(textBox1.Text).Date + "#";
           dv.RowStateFilter = DataViewRowState.ModifiedCurrent;
           dv.Sort = "Datum DESC";

           dataGridView1.DataSource = dv;
           dataGridView1.Refresh();


تحياتى لك
وتمنياتى لك التويق