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

البحث بين تاريخين

بدأه راشدالعامري في 26 يناير 2010 · 5 رد · 1,678 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم إخوتي الكرام ..

أرفق بين أيديكم الكريمة مشكلتي في محاولة البحث يبن تاريخين وقد بحثت ووجدت مواضيع متفرقة في تغيير صيغة التاريخ وحاولت تطبيق البعض لكن لم افلح ..

بالمرفقات مثال بسيط أريد أن أبحث فيه بين تاريخين وأضع الناتج في GridView ..

السؤوال الآخر : ما هو نوع حقل التاريخ الذي أقوم بإختياره عندما أصمم قاعدة البيانات فهناك DateTime وهناك ShortDateTime ..

عذرا أنا متعود على الأكسس وvb6 القديمة وكانت الطريقة للبحث سهلة بالنسبة لي .

Select * From Order Where DateT Between # " & format(text1.text ,"mm/dd/yyyy") & " # And # " & format(text2.text ,"mm/dd/yyyy") & " # ",

لكن في SQL شكلها غير ..

Help.rar

تم تعديل هذه المشاركة بواسطة راشدالعامري في 26 يناير 2010 في 22:24

#2

السلام عليكم ورحمة الله وبركاته كيف حالك DateTime يعطى الوقت والتاريخ أما ShortDateTime يعطى التاريخ فقط عند تصميم قاعدة البيانات Sql Server اختر نوع الحقل datetime أما بالنسبة للمثال فقد استخدمت sqlcommand بدلا من sqldataadapter وقمت بعمل SqlString كالتالى Dim SQLS As String = "SELECT * FROM Orders WHERE SDate BETWEEN @DateFrom AND @DateTo وقمت باضافة parameters الى sqlcommand والحمد لله لم تظهر أخطاء و أعطانى المطلوب طبعا باقى التفاصيل ستجدها فى المرفقات ولازم تكون متأكد أن هذا الحل ليس وحيدا لذا فابحث عن باقى الحلول مع تمنياتى لك ولهذا الصرح العظيم بدوام التوفيق والنجاح

Help1.rar

1
#3

ماشاء الله عليك استاذ سامح دائما على الخط ،،،

أنا تعبت من البحث ووجدت مواضيع تتحدث في الأمر من ضمنها :

/index.php?showtopic=74324&st=0

وفي الأخير بقت اشكالية واحدة ...

وهيه لو كان هناك فرق في الوقت فإن الفواتير لا تظهر فمثلا : لو قمت بعمل بحث بين الفترة من 01/01/2010 إلى 02/01/2010 فإن الفاتورة في تاريخ 02 لاتظهر إلى إذا كانت الفترات بين 01/01/2010 إلى 03/01/2010 .

شاهد المثال المرفق :

وجود أشخاص مثلك في هذا الصرح شيء مطلوب أخي سامح ...

Help.rar

#4

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

وفقك الله أخى راشد

ما يحدث هو أنه عندما يقارن بين التواريخ يأخذ فى الإعتبار الزمن المسجل مع التاريخ

لذلك فى حالة 2 و 3 لا تظهر الفواتير لأن الزمن بعد الساعة 12 صباحا

أما فى حالة 4 الزمن 12 صباحا لذلك تظهر هذه الفاتورة

وللتأكد من ذلك جرب فى المثال الذى أرفقته لكم ولكن أضف فى الجدول أزمنة مختلفة مع التواريخ ثم بعد ذلك أثناء run أدخل التاريخ ومعه الزمن

وبذلك تظهر أى فاتورة قبل هذا الزمن والتاريخ أو تساوى هذا الزمن

مثال توضيحى : أدخل النص هكذا فى textbox

5/1/2010 4:00:00 م

مع تمنياتى بالتوفيق

post-220766-12645538862375_thumb.png

#5

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

لكن ماذا لو لم أرد أن أتعامل مع الوقت أريد فقط التاريخ هل هناك طريقة ؟

شيء آخر ..

هل ممكن أيضا أن أضع في الجريد فيو التاريخ فقط ؟؟

شكرا للمساعدة

#6

لقد حلت المشكلة بعد بحث مستميت ..

ولكم الحل للعلم والقائدة :

         Dim SQLS As String = "Select No,CONVERT(nvarchar(10),SDate,103),Amount From Orders Where CONVERT(nvarchar(10),SDate,103) BETWEEN Convert(nvarchar(10),'" + D + "',103) AND Convert(nvarchar(10),'" + F + "',103)"

لقد قمت باستخدام الفنكشن : Convert حيث أن هذا الفنكشن يقوم بتحويل نوع الحقل من تاريخ ووقت إلى نص فأتعامل معه كما أريد .

فالكود قمت بتحويل حقل التاريخ فالجملة Select إلى نص ليظهر على الجريد فيو كتاريخ من دون نص وذلك من خلال nvarchar(10) وعشر خانات نعنى بها التاريخ فلو زدت فيها شيء ستصل إلى الوقت ..

وكذلك في جملة الشرط Between قمت بتغيير المتغييرين d و f من وتاريخ إلى نص وتمت المعادلة بنجاح دون تدخل الوقت بالموضوع ..

103 في شرط الConvert تعني أن الوقت سيحسب على الشكل dd/mm/yy وهذا الذي قمت بتعميمه على الحقل في الـ Select وجملة الشرط ليتم التوافق بين الجميع ..

هذا رابط لمن يريد أن يشاهد كيفية التعامل مع convert و cast ..

http://msdn.microsoft.com/en-us/library/aa226054%28SQL.80%29.aspx

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

لكن قد يكون طالب الموضوع في أمس الحاجة إلى هذه المعلومة بسبب ضيق الوقت لديه ( ومن نفس عن مؤمن كربة من كرب يوم الدنيا نفس الله عنه عنه كربة من كرب يوم الآخرة ) .

تحياتي للجميع وللأستاذ سامح بشكل أخص

Help.rar

تم تعديل هذه المشاركة بواسطة راشدالعامري في 29 يناير 2010 في 13:40

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