الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال بخصوص ال listview و آخر عن جملة sql

بدأه hadi2005 في 30 أبريل 2012 · 9 رد · 719 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ،

اليوم عندي سؤالين إن شاء الله انهم بسييطين :

الأول :

انا عندي الكود التالي يعبي الليس فيو بالبيانات الموجودة في الداتا بيس (الجدول في قاعدة البيانات مكون من سبعة اعمدة ) :

lst_residents.Columns.Add("Resident_No", 50, HorizontalAlignment.Center);
            lst_residents.Columns.Add("Resident_Name", 250, HorizontalAlignment.Center);
            lst_residents.Columns.Add("Resident_Phone", 100, HorizontalAlignment.Center);
            lst_residents.Columns.Add("Resident_Office", 100, HorizontalAlignment.Center);
            lst_residents.Columns.Add("Resident_Moibile", 100, HorizontalAlignment.Center);
            lst_residents.Columns.Add("Resident_Sponsor_Name", 100, HorizontalAlignment.Center);
            lst_residents.Columns.Add("Ekama_Renwal_Date", 110, HorizontalAlignment.Center);
 this.residentsTableAdapter.Fill(eSRA_2012DataSet.Residents);

           for (int i = 0; i < this.eSRA_2012DataSet.Residents.Rows.Count; i++)
           {

               ListViewItem list = new ListViewItem();
               for (int c = 0; c < this.eSRA_2012DataSet.Residents.Columns.Count; c++)
               {
                   if (c == 6)
                   {
                       string cell = this.eSRA_2012DataSet.Residents.Rows[c].ToString();

                   }
                   else
                   {
                       string cell = this.eSRA_2012DataSet.Residents.Rows[c].ToString();
                       list.SubItems.Add(cell);
                   }
               }
               lst_residents.Items.AddRange(new ListViewItem[] { list });

           }

الكود يشتغل تمام بس في مشكلة وحده وهي انو يخلي اول عمود في الليست فيو فاضي ويبدى يعبي من بعدو

اعتقد ان المشكلة في هادي الجملة ListViewItem list = new ListViewItem();

بس ماعرفت كيف حلها !!

اتمنى تكون وصلت الفكرة ....

السؤال الثاني هو :

انا عندي في الداتا بيس تاريخ بداية وتاريخ نهاية

المطلوب هو انو ابني جملة sql بحيث تفحص التاريخ المعطى هل هو بين التاريخين الموجودين في الداتا بيس ام لا

انا استخدم ال query builder لانو اقل في عدد الاسطر وابسط في الجمل بس ماعرفت كيف اسويها !! :)

اتمنى ان الفكرة وصلت وانو ما ثقلت عليكم باسئلتي

وفي الاخير ... تقبلو خالص تحياتي وشكري

#2

السلام عليكم ..

  1. بخصوص الــ ListViewItem , فمعك حق , أول عنصر فيها يتم تمريرة للــ Constructor و البقية نعتبرهم subItems كمايلي :
     ListViewItem item = new ListViewItem("f1");
            	item.SubItems.Add("f2");
            	listView1.Items.Add(item);

  2. افتح الــ DataSet ثم على الجدول المطلوب Add Query ثم use select statement ثم select with return rows ثم اكتب الاستعلام من الشكل :
    SELECT 	ID, EmpName, birthDate
    FROM     	Employee
    WHERE 	(birthDate BETWEEN @d1 AND @d2)

    ثم التالي التالي ..

  3. بعد سحب الجدول على الفورم , نستدعي الاستعلام كمايلي :
    employeeTableAdapter.FillByBirth(dataSet1.Employee , dateTimePicker1.Value , dateTimePicker2.Value);

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

أخي الكريم houssam11350_11350 .

يعطيك الف عافية على تجاوبك

بخصوص الليست فيو طيب مااعطيتني حل ؟!

بخصوص استعلام الوقت انا ابغى اسوي العكس

يعني عندي تاريخين في الداتا بيس وابغى اشوف ادا التاريخين بين تاريخ اليوم ولا لاء

عشان توضح الفكرة اكثر هقلك الهدف منها :

انا عندي في الداتا بيس جدول خاص بالعقود فيه :1- تاريخ بداية العقد 2- تاريخ نهاية العقد

عشان اعرف ادا كان اي عقد ساري المفعول او لا ,,, لازم اشوف تاريخ اليوم هل هو بين تاريخ بداية ونهاية العقد او لا

اتمنى تكون وصلت الفكرة

وشكرا جزيلا على مساعدتك لي

الله يعطيكم العافية

تم تعديل هذه المشاركة بواسطة hadi2005 في 1 مايو 2012 في 08:58

#4

السلام عليكم ...

الله يعافيك أخي .. و لا شكر على واجب ..

  1. بالنسية للــ ListView كما قلت لك سبب ان أول عمود ينتج معك فاضي هو أن قيمة أول عمود يجبب أن تمرر ضمن الــ Constructor كما فعلت في المثال السابق حيث مررت القيمة f1 لأول عمود .. و باقي قيم الأعمدة ستون subItems كما هو في f2 .. أي سيكون لدينا عنصر واحد فيه f1 و f2 .
  2. الاستعلام المطلوب هو :
    SELECT 	EmpName, ID, endDate, startDate
    FROM     	Employee
    WHERE 	(@d BETWEEN startDate AND endDate)

    حيث ستكون قيمة البارمتر @d هي تاريخ اليوم , لأنك لم تذكر نوع قاعدة البيانات , طبعا بعد توليد الإجراء في الــ DataSet نحدده و نأخذ properties ثم نأخذ parameters لنغير نوع بيانات البارمتر من String إلى Date .

  3. يكون الاستدعاء :
    employeeTableAdapter.FillByToDay(dataSet1.Employee , DateTime.Now);

  4. للمعلومات : دالة الوقت في sql server هي GETDATE و في الأكسس لدينا Date و Now رابط.

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

وعليكم السلام ...

طيب بخصوص الليست فيو ما اقدر امرر اول قيمة لل Constructor للسبب التالي

 for (int i = 0; i < this.eSRA_2012DataSet.Residents.Rows.Count; i++)
           {

               ListViewItem list = new ListViewItem();
               for (int c = 0; c < this.eSRA_2012DataSet.Residents.Columns.Count; c++)
               {

                       string cell = this.eSRA_2012DataSet.Residents.Rows[c].ToString();
                       list.SubItems.Add(cell);

               }
               lst_residents.Items.AddRange(new ListViewItem[] { list });

لأنو لازم اعرف ال list خارج اللوب for عشان اقدر add range بعد ما تخلص اللوب

لكن ادا دخلتو جوا اللوب ماهيتعرف على المتغير list

وكمان ادا دخلت ال add range داخل اللوب ما هتزبط ويعطيني البيانات بشكل خاطئ(عمودي) !!

اتمنى تكون وصلت الفكرة

بخصوص الاستعلام .... شكرا جزيلا انا هجربو ارجعلك ..(نوع الداتابيس SQL SERVER)

تحياتي لك

#6

السلام عليكم ...

  1. لدينا حل آخر حيث يمكن وضع قيمة أول عمود بالخاصية Text مباشرة للــ Item كمايلي :
    int [,] rows = new int[,] {{1, 2 ,3 ,4},{5 ,6,7,8}};
    			for (int i = 0; i < 2; i++)
           	{
    
               	ListViewItem list = new ListViewItem();
               	list.Text = rows[i,0].ToString();;
               	for (int c = 1; c < 4; c++)
               	{
    
                       	string cell = rows[i,c].ToString();
                       	list.SubItems.Add(cell);
    
               	}
               	listView1.Items.Add( list );
    			}

    و تبدأ الحلقة الداخلية من الــ 1 بدلا من الــ 0

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7

الله يعطيك العافية

سامحني حاولت اركب الكود على اللي عندي بس ماقدرت

معليش اتعبك معاي ادا تقدر تجمع الكودين مع بعض او على الاقل تشرح الاخير

شكرا جزيلا لك

#8

بالنسبة لكود ال SQL تم تجربته واشتغل بشكل ممتاز

لساني عاجز عن شكرك

تحياتي لك

#9

السلام عليكم ..

لا شكر على واجب ...

  1. بالنسبة لكود الــ ListView هذا هو :
     for (int i = 0; i < this.dataSet1.Employee.Rows.Count; i++)         	{
    
                	ListViewItem list = new ListViewItem(this.dataSet1.Employee.Rows[0].ToString());
                	for (int c = 1 ; c < this.dataSet1.Employee.Columns.Count; c++)
                	{
    
                    	string cell = this.dataSet1.Employee.Rows[c].ToString();
                    	list.SubItems.Add(cell);
    
                	}
               	listView1.Items.Add( list );
            	}

  2. بالنسبة لكود السيكوال .. فقط انتبه أن التواريخ فيها أيضا ساعات و دقائق و ثواني .. و أحيانا لو كان التاريخ الحالي مساوي لتاريخ بداية العقد و تاريخ نهاية العقد فإنه لن يظهر في النتيجة لان فيه الساعة تكون 12 صباحا (01/01/2013 12:00:00 ص) (نوعه smalldatetime) و تاريخ الــ DateTime.Now فيه ساعة مختلفة حسب التاريخ و الوقت الحالي للجهاز .. لذلك احيانا نضيف يوم واحد لتاريخ النهاية .. حاول التجريب :
    SELECT 	EmpName, ID, endDate, startDate
    FROM     	Employee
    WHERE 	(@d BETWEEN startDate AND DATEADD(Day,1, endDate))

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#10

أخي الكريم houssam11350_11350 ،

برااااافففووووو

الله يعطيك العافية ..

بالفعل هادا هو الكود المطلوب . بسيط وسهل ويأدي الغرض باقل اسطر ممكنة .

هاخد بملاحظتك بخصوص كود السيكوال

الله يعطيك العافية ويقويك على فعل كل مايحبه ويرضاه

سلام عليكم

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…