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

كود الاستعلام من قاعدة البيانات

بدأه tomoya في 15 أغسطس 2008 · 4 رد · 1,749 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اعضاء المنتدى الكرام

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

ملاحظة : انا اعمل على فيجوال بيسك 2005 وقاعدة بيانات اكسس

و اريد الاستعلام عن الغرف الغير محجوزة في تاريخ معين وبمواصفات معينة

لدينا 3 جداول : جدول الغرف وجدول الحجوزات

حيث يقوم المستخدم باختيار نوع الغرفة وسعرها وتاريخ الحجز ثم تظهر له النتيجة

فكيف اقوم بالاستعلام عن (ارقام الغرف) الفارغة بنوع معين وسعر معين و الغير محجوزة في تاريخ معين

حاولت التفكير فيها بحيث : اولا يتم اختيار الغرف من جدول الغرف حسب النوع والسعر

select room_number from rooms

where type = and price

ثانيا اختيار الغرف من جدول الحجوزات

select room_number from reservations

where re_date

ثالثا تكون النتيجة = ارقام الغرف من الاستعلام الاول - ارقام الغرف من الاستعلام الثاني

ولكن للاسف لم اتوصل الى الامر النهائي بشكله البرمجي الصحيح اي لم اتمكن من دمج هذين الاستعلامين واظهار النتيجة

فهل هذه الطريقة صحيحة وممكنة ام هناك طريقة افضل واسهل وكيف سيكون شكل الامر النهائي الصحيح ؟؟؟

وجدول الغرف rooms

room_price / room_type / room_number

جدول الحجوزات reservations

Re_id

client_mobile

room_number

re_date

وفي المرفقات البرنامج مع قاعدة البيانات في الملف hotel - bin - debug

ارجو منكم المساعدة وشكرا

تحياتي smile.gif

hotel.zip

#2

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

أما الان فدعنا نستعرض بعض جمل SQL التي يمكنها ان تفيدك في العمل وتفهم فكرة العمل، واين تجد كلمة TabelName فهي تعني أسم الجدول الذي يجب ان تحدده، وايضاً FiledName وتعني اسم الحقل الذي يجب ان تحدده.

Select * From TabelName	




تقوم بتحديد جميع الحقول بالجدول المحدد

Select Filed1,Filed2 From TabelName	 




تقوم بتحديد الحقلين المحددين من الجدول المحدد

Select * From TabelName Where FiledName='Any Value'	 




استخدام العبارة Where وتعني حيث اي تحديد كل الحقول من الجدول المحدد اذا كان الحقل المحدد يساوي القيمة الموضوعة

Select * From TabelName Where FiledName=12345  






نفس الجملة السابقة ولكن هذه تستعمل مع الحقل من النوع Integer وبدون علامات التنصيص

Select * From TabelName Where FiledName='Any Value' or FiledName='any value'	 




استخدام العبارة Or



Select * From TabelName Where FiledName='Any Value' And FiledName='any value'	 




أستخدام العبارة And ، حقيقة يمكنك وضع ما تريد من الشروط



Select * From TabelName Where FiledName=(Select FiledNmame From TabelName Where FiledName='Any Value')	 




  تحديد مجموعة من الحقول بمعلومية حقول من جدول أخر



Select * From TabelName Where FiledName In (99,11,12,231)	






تحديد الحقول التي قيمتها تقع من ظمن هذه القيم، ويمكنك استخدام Not In بمعنى لا تقم من ضمن هذه القيم.



Select * From TabelName Where FiledName='%A'  




تحديد كل الحقول التي تبدأ بحرف A





Select * From TabelName Where FiledName > 123	  




 كل الحقول التي الحقل المحدد فيها قيمته اكبر من 123 طبعاً يمكنك استخدام < - > او الاثنين معاً





Delete * From TabelName	




حذف كل الحقول بالجدول المحدد





Delete * From TabelName Where FiledName='Any Value'	 




 حذف كل الحقول التي الحقل المحدد فيها يساوي القيمة المحددة، وطبعاً يمكنك استخدام نفس المعاملات السابقة لجعل الجملة تلبي طلبك بدقة.
#3

مرحبا.. أختي..

سأعطيك أقترحاي.. لأن قمت مشروع مشابه له ..

نبدأ

بعرض الغرف الموجود في الداتا البيس.. حسناً..

ندع المستخدم يختار غرفة..

Select roomid from room

ثم نتأكد أنه لم يقم بعملية جحز أخرى.. (كيف؟ من خلال أسمه أو كرديت كارد بداخل جدول الحجوزات أن كان موجود فهذا يعني أن قام بالحجز مسبقاً أن لم يكن موجودة فهذا يعني لن لم يقم بالحجز مسبقاً) عملية مقارنة بين الموجود في الداتا بيس و القادم .. بأمكانك فعله من خلال (querystring)

و نتأكد أيضاً من تفاصيل أخرى الرصيد .. و أشياء أخرى... بهذه الطريقة..

و ثم تفاصيل تتخزن بداخل الجدول reservation

و عندها أنتهى الأمر..

لذا لا تتوقعي الكثير..

لعل أحد الأخوان يستطيع مساعدتك بأفكار أكثر..

في أمان لله

ملاحظة: كنت أظن أنه WebApplication لكن WindowsApplication

لذا عذراً ليست خبيراً فيه -_-"

تم تعديل هذه المشاركة بواسطة BLEACHHeart في 18 أغسطس 2008 في 17:20

#4

اخواني الاعزاء

لكم جزيل الشكر على تعاونك ويعيطيكم ألف عافية

بالنسبة لجملة الاستعلام فلدي خلفية بسيطة جدا عنها

يعني مثلا عرفت كيف اصيغ جملة استعلام لاظهار ارقام الغرف التي من نوع single room

وقد استخدمت استخراج الsql من الاكسس

ولكن ما لم استطع عمله هو المثال التالي

اظهار ارقام الغرف التي من نوع single room والغير محجوزة في تاريخ مثلا 10/10/2008

أكرر شكري للجميع

وأرجو المساعدة في عمل استعلام للمثال الثاني سواء بالاكسس او ال sql

تحياتي

#5
 

select id_room from tableroom where type_room = single and state_room = off;

id_room رقم الغرفه

type_room نوع الغرفة

state_room حالة الغرفه إما اون يعني مشغوله او اوف يعني متاحة

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

كيف تستعلم لتاريخ مستقبلي ؟

المهم انها اذا كانت حالتها اوف بتكون متاحة اصلاً

واي واحد بيطلب غرفه هو بيستعلم عن نفس الوقت او بكره او بعده

مش بعد سنه

تم تعديل هذه المشاركة بواسطة إسماعيل الجعثوث في 24 أغسطس 2008 في 00:19

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