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

كيف يمكن وضع comboBox عدد3 بدل الـ dateTimePicker ؟

بدأه ahmed arkan في 27 فبراير 2011 · 7 رد · 863 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اسعد الله اوقاتكم

لدي برنامج يعتمد على اختيار تأريخ معين لاضهار تنيجة معينة (ساعدني فيه اخي الكريم wisamsalah )

الاداة التي استعملها لأختيار التأريخ هي dateTimePicker اود استبدالها بـ comboBox عدد3 (للسنة وللشهر ولليوم) ...فهل يمكن هذا ؟ واذا كان ممكن فمالذي اغيره في هذا الكود الخاص بالاداه dateTimePicker ... مع العلم اني لدي قاعدة بيانات تحتوي على جدول فيه 4 اعمدة تحتوي على تواريخ ...

 private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            try
            {
                string Input = dateTimePicker1.Value.ToShortDateString();
                string Result = "";
                DataRow[] QueryResult = dt.Select("a = '" + Convert.ToDateTime(Input) + "'");
                if (QueryResult.Length == 0)
                {
                    QueryResult = dt.Select("b = '" + Convert.ToDateTime(Input) + "'");
                    if (QueryResult.Length == 0)
                    {
                        QueryResult = dt.Select("c = '" + Convert.ToDateTime(Input) + "'");
                        if (QueryResult.Length == 0)
                        {
                            QueryResult = dt.Select("d = '" + Convert.ToDateTime(Input) + "'");
                            if (QueryResult.Length == 0)
                            {
                                Result = "Not Present";
                            }
                            else Result = "d";
                        }
                        else Result = "c";
                    }
                    else Result = "b";
                }
                else Result = "a";
                label1.Text = Result;
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

    }
}

وهذا هو البرنامج مع القاعدة باكمله

WinFormDateTime.zip

***من الأفضل أن تمشي ببطء إلى الأمام على أن تمشي مسرعاً إلى الخلف***

#2

على حسب ما فهمت منك تريد استخدام الكومبو بوكس بدلا من التايم بيكر

حسنا استخدم الكود التالي (التابع الباني ):

DateTime dt = new DateTime(yearCompo,monthCompo,dayCompo);

Lab1.text = dt.toString();
1

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#3

الاخ الكريم Tammam_KD ... اشكرك على الرد .. بالضبط هو هذا ماريده ... بس ممكن توضيح اكثر لاني جديد على الـ C#

والذي اريده يكون بالشكل التالي تقريباً

foratweb-7f8193be7e.jpg

تم تعديل هذه المشاركة بواسطة ahmed arkan في 27 فبراير 2011 في 22:59

***من الأفضل أن تمشي ببطء إلى الأمام على أن تمشي مسرعاً إلى الخلف***

#4

نفس الشيء

input= ComboBox2.Text+'/'+ComboBox1.Text+'/'+ComboBox.Text;

Currently working on ASP.net ..... come Back Soon

#5

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

ربما كانت حل أخي Tammam KD أفضل في وجهة نظري

على ان يتم وضع الكود التالي بدل أول سطر في الكود السابق(الذي يأخذ التاريخ من الDateTimePicker)


string Input = dt.ToShortDateString();
DateTime dt = new DateTime(yearCompo.SelectedItem.ToString(),monthCompo.SelectedItem.ToString(),dayCompo.SelectedItem.ToString());

فالسطر الأول يأخذ قيم السنة من ComboBox الخاص بالسنة ثم قيمة الشهر من ComboBox لخاص بالشهر ثم قيمة اليوم من ComboBox الخاص بالأيام و يضعها في متغير DateTime اسمه dt

ثم يحوله بنفس الصورة الذي يتعامل معه قاعدة البيانات في صورة نص في متغير input

علما بإن اذا أحكمت الكود بطريقة أخي Hisham_IT سيكون ذلك الصحيح لكن تأكد أن الشهر أولا ثم اليوم ثم السنة اذا كانت الغة Collation الافتراضي هي الأمريكي(كمعظم الأجهزة)

لكن اذا كانت هذا الأمر قد يسبب لك المشاكل في ضبطه لهذا قلت أن ما قاله أخي Tamma KD أصلح و أأمن من الأخطاء(و هذا من زجهة نظري)

و الخيار لك

تقبل خالص تحياتي

#6

الصراحة لم أفهم ما تقصده بالتحديد ولكن ............... في الكود لا أهمية للترتيب سواء جاء الشهر قبل السنة أو اليوم قبل الشهر او السنة قبلهم جميعا ............

يهمك أنت ما يظهر للمستخدم ....................... فقط

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#7

Tammam_KD كتب:

الصراحة لم أفهم ما تقصده بالتحديد ولكن ............... في الكود لا أهمية للترتيب سواء جاء الشهر قبل السنة أو اليوم قبل الشهر او السنة قبلهم جميعا ............

يهمك أنت ما يظهر للمستخدم ....................... فقط

السلام عليكم

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

لكن الواقع فانه سياخذ التاريخ ليقةرن به مع قاعدة البيانات و التي يحفظه لديه ليس بالضرورة كما كتبه بل لصيغة التاريخ الذي اعتمده

لذا عند تكون نص التاريخ لابد ان يكون نسخ الصيغة و إلا ممكن ان يري فيها اخنلاف

فاذا قلت مثلا 1/3/2011 كيف تفهمها؟

ممكن تفهمها 1 مارس 2011 حسب لدينا في مصر مثلا او في بريطانيا لكن في امريكا سيفهم على انه 3 يناير 2011

لأننا في مصر او بريطانيا نقرأه حسب هذا لترتيب dd-mm-yy اما في أمريكا فيقرأه بالصيغة التاليةmm-dd-yy

و هذا ما أقصده

فالأهم توافق الصيغة حتى يتم التطابق

تقبل خالص تحياتي

#8

اه فهمت أخي الكريم ............... في هذه الحالة معك حق ............ يمكنك التلاعب بالفورمات ...........وجهة نظر سليمة مئة بالمئة

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

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