تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] تصفية Filter تاريخين في datagridview
#1
السلام عليكم

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

كيف اعمل تصفية Filter للمعلومات بناء على التاريخين ؟
قال رسول الله صلى الله عليه وسلم ( من قال لا إله إلا الله دخل الجنة ) حديث صحيح.
قال رسول الله صلى الله عليه وسلم ( كلمتان خفيفتان على اللسان ثقيلتان في الميزان حبيبتان للرحمن : سبحان الله وبحمده سبحان الله العظيم ) حديث صحيح.
الرد
تم الشكر بواسطة:
#2
لم توضح كيف تم وضع البيانات في 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); 
الرد
تم الشكر بواسطة: elgokr
#3
وهذا الكود لو المقارنة بتاريخ واحد
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); 
الرد
تم الشكر بواسطة: elgokr
#4
مرحباً اخى عبدالله

الطرق عديدة ساضع لك بعضها
يمكنك عمل فلتر عن طريق التالى
كود :
(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();


تحياتى لك
وتمنياتى لك التويق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم