اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

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

انا بستخدم الكود ده

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                //here
                id = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString());
                var p = db.TBL_SPECIALIST.SingleOrDefault(x => x.SPECIALIST_ID == id);

                edt_name.Text = p.SPECIALIST_NAME.ToString();
                edt_brith_date.Text = p.SPECIALIST_BIRTHDATE.ToString();
                edt_age.Text = p.SPECIALIST_AGE_NOW.ToString();
                edt_education.Text = p.SPECIALIST_EDUCATION.ToString();
                edt_id_num.Text = p.SPECIALIST_ID_NUMBER.ToString();
               edt_phone.Text = p.SPECIALIST_PHONE.ToString();
             edt_address.Text = p.SPECIALIST_ADDRESS.ToString();
                edt_active.Text = p.SPECIALIST_ACTIVE.ToString();
                //listbox
                lbx_work_history.Items=p.SPECIALIST_WORKED_BEFORE.ToString();

 

Recommended Posts

  • 0
نشر

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

لنقم بشرح طريقة إضافة البيانات من قاعدة البيانات إلى ListBox في جريد فيو.

أفترض أن لديك DataGridView يعرض البيانات من قاعدة البيانات وعند تحديد سطر في DataGridView، يتم عرض بياناتها في TextBoxes و ListBox.

الكود الذي قدمته يستخدم الحدث SelectionChanged للتعامل مع تغيير الاختيار في DataGridView. في هذا الحدث، يتم استخراج قيمة (id) من السطر المحدد في DataGridView واستعادة البيانات المتعلقة به من قاعدة البيانات. ومن ثم يتم تعيين قيم هذه البيانات في TextBoxes.

لكن بالنسبة للـ ListBox، لا يمكن تعيين القيمة المسترجعة مباشرة إلى خاصية Items للـ ListBox. بدلاً من ذلك، يجب عليك استخدام الخاصية DataSource لربط الـ ListBox بمصدر البيانات وخاصية DisplayMember لتحديد العنصر الذي يتم عرضه في الـ ListBox.

في حالتك، يبدو أن لديك سلسلة من البيانات (SPECIALIST_WORKED_BEFORE) التي ترغب في عرضها في ListBox. يمكنك تحقيق ذلك عن طريق تحويل هذه السلسلة إلى مصفوفة من السلاسل ومن ثم تعيين هذه المصفوفة كمصدر بيانات للـ ListBox.

يمكنك استخدام الكود التالي لتحقيق ذلك:

string[] workedBeforeArray = p.SPECIALIST_WORKED_BEFORE.Split(',');

lbx_work_history.DataSource = workedBeforeArray;

lbx_work_history.DisplayMember = "ToString";

 

في هذا الكود،

  • نقوم بتقسيم السلسلة SPECIALIST_WORKED_BEFORE إلى مصفوفة من السلاسل باستخدام الدالة Split وفاصلة الفاصلة (',') كمعيار الفصل.
  • ثم نعيّن المصفوفة الناتجة كمصدر بيانات للـ ListBox باستخدام الخاصية DataSource.
  • أخيرًا، نعيّن خاصية DisplayMember لتحديد العنصر الذي يتم عرضه في الـ ListBox، وفي هذه الحالة سيتم استخدام دالة ToString لعرض كل عنصر من السلاسل في الـ ListBox.

بعد تنفيذ هذا الكود، يجب أن يتم عرض البيانات في الـ ListBox بناءً على السلسلة المسترجعة من قاعدة البيانات.

تحياتي

  • 0
نشر

وعليكم السلام
دي طريقة جلب البيانات الي listbox
 

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    try
    {
        id = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString());
        var p = db.TBL_SPECIALIST.SingleOrDefault(x => x.SPECIALIST_ID == id);

        edt_name.Text = p.SPECIALIST_NAME.ToString();
        edt_brith_date.Text = p.SPECIALIST_BIRTHDATE.ToString();
        edt_age.Text = p.SPECIALIST_AGE_NOW.ToString();
        edt_education.Text = p.SPECIALIST_EDUCATION.ToString();
        edt_id_num.Text = p.SPECIALIST_ID_NUMBER.ToString();
        edt_phone.Text = p.SPECIALIST_PHONE.ToString();
        edt_address.Text = p.SPECIALIST_ADDRESS.ToString();
        edt_active.Text = p.SPECIALIST_ACTIVE.ToString();

        
        lbx_work_history.Items.Clear();

       
        string[] workHistoryArray = p.SPECIALIST_WORKED_BEFORE.Split(',');
        foreach (string item in workHistoryArray)
        {
            lbx_work_history.Items.Add(item.Trim());
        }
    }
    catch (Exception ex)
    {
     
        MessageBox.Show("Error: " + ex.Message);
    }
}

 

  • 0
نشر

من أجل تحميل البيانات من قاعدة البيانات إلى ListBox في التطبيق، يمكن استخدام دورة للحلقة (loop) على البيانات التي تريد عرضها في ListBox وإضافتها واحدة تلو الأخرى. هناك عدة طرق لفعل ذلك،  لو نتحدث عن الطريقة التي تستخدم الحلقة foreach فسيكون الكود كالتالي:

lbx_work_history.Items.Clear(); // يجب مسح العناصر الحالية أولاً لتحديثها



foreach(var item in p.SPECIALIST_WORKED_BEFORE)

{

    lbx_work_history.Items.Add(item); // إضافة كل بند من البيانات إلى ListBox

}

 

وهنا يفترض أن `p.SPECIALIST_WORKED_BEFORE` هو مصفوفة أو قائمة تحتوي على البيانات التي تريد عرضها في ListBox، لكن هنا يجب أن نقوم بتعديل هذا الجزء من الكود بناء على كيفية تنظيم البيانات في قاعدة البيانات الخاصة بك وبعد تطبيق هذا التغيير، من المفترض أنه سنتمكن من عرض البيانات في ListBox بعد تحديد سجل معين في DataGridView.

  • 0
نشر
 private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                //here
                id = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString());
                var p = db.TBL_SPECIALIST.SingleOrDefault(x => x.SPECIALIST_ID == id);

                edt_name.Text = p.SPECIALIST_NAME.ToString();
                edt_brith_date.Text = p.SPECIALIST_BIRTHDATE.ToString();
                edt_age.Text = p.SPECIALIST_AGE_NOW.ToString();
                edt_education.Text = p.SPECIALIST_EDUCATION.ToString();
                edt_id_num.Text = p.SPECIALIST_ID_NUMBER.ToString();
                edt_phone.Text = p.SPECIALIST_PHONE.ToString();
                edt_address.Text = p.SPECIALIST_ADDRESS.ToString();
                edt_active.Text = p.SPECIALIST_ACTIVE.ToString();
                // LISTBOX  SelectionChanged
                lbx_work_history.Items.Clear();
                string[] workHistoryArray = p.SPECIALIST_WORKED_BEFORE.Split(',');
                foreach (string item in workHistoryArray)
                {
                    lbx_work_history.Items.Add(item.Trim());
                }
                lbx_Specialization.Items.Clear();
                string[] Specialization = p.SPECIALIST_Specialization.Split(',');
                foreach (string item in Specialization)
                {
                    lbx_Specialization.Items.Add(item.Trim());
                }
                lbx_work_time.Items.Clear();
                string[] WORKING_DAYES = p.SPECIALIST_WORKING_DAYES.Split(',');
                foreach (string item in WORKING_DAYES)
                {
                    lbx_work_time.Items.Add(item.Trim());
                }
                edt_salary_type.Text = p.SPECIALIST_SALARY_TYPE.ToString();
                edt_salary_amount.Text = p.SPECIALIST_SALARY_AMOUNT.ToString();
                edt_salary_time.Text = p.SPECIALIST_SALARY_TIME.ToString();
                //p.ADDED_BY =
                //p.BRANCH_NAME=
            }
            catch (Exception)
            {

                return;
            }

الحمد لله قد افادتنى طريقة اخى Mahmoud Hassan على الوجة الامثل

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...