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

داتا جريد تحتوي علي بيانات اكتر من جملة Select

مغلق
بدأه specialman في 22 فبراير 2006 · 8 رد · 695 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اولا : اريد ان اشكر c#please,baha_ashour علي ردودهم لي في موضوعي السابق . جزاكم الله خيرا .

ثانيا : شرح المشكلة التي تواجهني هذه المشكلة

انا حاولت مرار وتكرارا للحصول علي حل هذه المشكلة لكن دون جدوي .

- لدي جدولين احدهما يسمي medicineوالثاني يسمي medicine_id العلاقة بينهم واحد الي متعدد (ستكون مرفقة بالموضوع)

- انا اعمل علي مشروع ادارة صيدلية واريد ان انذر المستخدم بقؤب انتهاء مدة الصلاحية لدواء معين وعليه فيتوجب اظهار كل البيانات التي تميز اي دواء عن الاخر والكمية الموجوده منه وتاريخ انتهاء صلاحيته .

ففي البداية يجب ان اختبر من الجدول MEDICINE_DETAILS قيمة التاريخ ومقارنتها بالتاريخ الحالي للنظام وبالتالي اقدر احدد كام بقي لنفاذ مدة الصلاحية وبطلع منها بال MDC_ID الذي يربط بالجدول الاول لكي احصل منه علي البيانات الاضافية كاسم الدواء والتركيز والنوع

بهذه الطريقة يبقي ممكن يطلع عندي كذا قيمة لل mdc_id واريد بعدها ان يظهر البيانات الخاصة بالدواء الذي رقم ال id الخاص به mdc_id .

طيب ما دام طلعلي كذا قيمة لل id ازاي اخللي كل الداتا اللي ليها id عندي تظهر في الdatagrid .

هذه هي المشكلة (يوجد بها بعض من الغموض ولكن اذا حدث اي التباس ارجو الرد علي لكي اوضح الالتباس)

وهذه هي الصورة الخاصة بالواجهة

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

post-48485-1140612570_thumb.jpg

Test_Expire_Date.rar

pharmacy.rar

اذا لم تزد شيئا علي الحياة فلا تكن انت زائدا عليها

#2

اولا :

قيم ال Y التي تخزنها في ال ArrayList هي ل mdc_d_id

والمفروض ان تكون ل mdc_id

ثانيا :

قم بتجربة هذا الكود :

foreach (object y in list)
{
      oleDbDataAdapter1.SelectCommand.CommandText = "SELECT * FROM [medicine] where ([mdc_id] = @ID);";
      oleDbDataAdapter1.SelectCommand.Parameters.AddWithValue("@ID", y.ToString());
      oleDbDataAdapter1.Fill(YourDataSet);
}

تم تعديل هذه المشاركة بواسطة baha_ashour في 22 فبراير 2006 في 18:03

#3

السلام

شكرا اخي بهاء علي ردك

ولكن انا فعلا اقصد mdc_d_id لاني لو عملتها mdc_id سوف احصل علي اكتر من حقل بعضها غير مرغوب به حيث ان mdc_id ممكن ان يحتوي علي اكثر من تاريخ مختلفين وبالتالي سوف ياتي البحث بالتاريخ الواقع في المدة التي لا اريدها .

اما اذا قمت بالحصول علي mdc_d_id فسوف ينتج لي قيمة واحدة فقط هي القيمة التي اريدها حيث انه pk لا يتكرر

مع العلم ايضا اريد اظهار البيانات في ال datagridview من الجدولين -> الاسم والتركيز والنوع منmedicine وتاريخ انتهاء الصلاحية والكمية الموجودة من هذا الدواء بهذا التاريخ منالجدول التاني medicine_details

ارجو ان تكون قد تفهمت الموضوع .

شكرا .

تم تعديل هذه المشاركة بواسطة specialman في 22 فبراير 2006 في 23:51

اذا لم تزد شيئا علي الحياة فلا تكن انت زائدا عليها

#4

يجب أن تقوم بعمل View يجمع بين القيم التي تريدها من الجدولين

وليكن اسمه Query4

ثم تقوم بالتعديل على الكود الذي كتبته انت ليصبح على الشكل التالي :

d = new DataSet();

foreach (object y in list)
{              
      da = new OleDbDataAdapter("SELECT * FROM Query4 where ([mdc_d_id] = @ID)", c);
      da.SelectCommand.Parameters.AddWithValue("@ID", y.ToString());
        
       da.Fill(d);                
}

dataGridView1.DataSource = d.Tables[0];

أرجو أن تخبرني بالنتيجة

تم تعديل هذه المشاركة بواسطة baha_ashour في 23 فبراير 2006 في 01:57

#5

لعمل ال view

SELECT medicine_details.mdc_d_id, medicine_details.mdc_expiredate, medicine.mdc_name, medicine.mdc_concentration, medicine.mdc_type, medicine_details.quantity
FROM medicine INNER JOIN medicine_details ON medicine.mdc_id=medicine_details.mdc_id;
#6

هذا هو الكود والداتابيز بعد التعديل ;)

Test_Expire_Date_baha_ashour.rar

تم تعديل هذه المشاركة بواسطة baha_ashour في 23 فبراير 2006 في 03:04

#7

السلام

مشكور جدا اخي بهاء علي جهدك معايا

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

اذا لم تزد شيئا علي الحياة فلا تكن انت زائدا عليها

#8

يا باشا ممكن تعمل select جوه select

#9

السلام

اولا : اريد ان اشكر اخي بهاء علي مساندته لي فقد عمل الكود بنجاح .... لك جزيل الشكر

ثانيا: ارجو من اخي c#please ماذا تقصد وكيف يتم ذلك .... ارجو التوضيح .

سلام

اذا لم تزد شيئا علي الحياة فلا تكن انت زائدا عليها

هذا الموضوع مغلق.

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

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

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

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

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