تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة فى البحث ما بين تاريخين
#1
السلام عليكم اخوانى 
عندى مشكلة وهى عند البحث ما بين تاريخين 
وهذا هو الكود المستخدم داخل ال Stored Procedure 
كود :
ALTER proc [dbo].[SearchBetween2Dates]
@Search1 datetime,
@Search2 datetime
as
SELECT [ID_Order] as 'رقم الفاتورة'
     ,[Order_Date] as 'تاريخ الفاتورة'
     ,[Client_Name] as 'إسم العميل'
     ,[Description_Order] as 'وصف الفاتورة'
 FROM [dbo].[Orders]
 inner join Table_Add_Client
 on Table_Add_Client.S_N=Orders.Client_S_N
 where Order_Date between @Search1 and @Search2
ولكن للاسف بيجبلي هذا الخطأ 
System.FormatException: 'String was not recognized as a valid DateTime.'
ارجو المساعده فى حل هذه المشكلة 
شكراً مقدماً
الرد
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته
 اخي الكريم غير السطر الاخير الى التالي
كود :
where Order_Date >= @Search1 and Order_Date <= @Search2
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: عبد العزيز البسكري , maxruined
#3
(20-06-20, 12:56 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
 اخي الكريم غير السطر الاخير الى التالي
كود :
where Order_Date >= @Search1 and Order_Date <= @Search2

للاسف اخوي نفس الخطأ دا 

System.FormatException: 'String was not recognized as a valid DateTime.'
الرد
تم الشكر بواسطة: ابراهيم ايبو
#4
السلام عليكم ورحمة الله وبركاته
اخي الكريم اذا كنت تبحث بمربعات نصوص عادية تدخل فيها التاريخ ليتم البحث 
يجب تحويلها الى تاريخ 

كود :
Convert.ToDateTime(textBox1.Text);
او استحدم اداتي DateTimePicker  للبحث
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: maxruined
#5
(22-06-20, 01:25 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم اذا كنت تبحث بمربعات نصوص عادية تدخل فيها التاريخ ليتم البحث 
يجب تحويلها الى تاريخ 

كود :
Convert.ToDateTime(textBox1.Text);
او استحدم اداتي DateTimePicker  للبحث

السلام عليكم اخوي 
انا بالفعل مستخدم اداه DateTimePicker 
ولكن للاسف لما بضغط على ال Button مش بيحصل اي شئ
وهذا هو الكود المستخدم فى حدث ال Button
كود :
           get.SearchBetween2Dates(dateTimePicker1.Value,dateTimePicker2.Value);
ولما بجرب هذا الكود بيجبلي للاسف هذا الخطأ (
System.FormatException: 'String was not recognized as a valid DateTime.'


)
كود :
get.SearchBetween2Dates(Convert.ToDateTime(dateTimePicker1.Value.ToString("MM/dd/yyyy")),Convert.ToDateTime(dateTimePicker2.Value.ToString("MM/dd/yyyy")));
الرد
تم الشكر بواسطة:
#6
بخصوص هذه الرسالة
System.FormatException: 'String was not recognized as a valid DateTime.'
سببها حاجة من الاثنين
هو طريقة تعريفة لـ @Search1 , @Search2

والسبب الثاني هو نوع العمود الذى تبحث فيه والقيمة المدخلة به
وبكده تكون انهيت مشكلتك عندما تركز على كلاً من هذا
الرد
تم الشكر بواسطة: maxruined
#7
(22-06-20, 09:59 PM)kiki كتب : بخصوص هذه الرسالة
System.FormatException: 'String was not recognized as a valid DateTime.'
سببها حاجة من الاثنين
هو طريقة تعريفة لـ @Search1 , @Search2

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

شكراً اخوي .. انا حاولت فعلاً .. ولكن هحاول تانى وانشاء الله هوصل للحل
الرد
تم الشكر بواسطة: kiki
#8
اخي الرسالة واضحة (" لم يتم التعرف على القيمة المدخاة على اساس انها تاريخ") اي اعد تعريف نوع البيانات في العمود او في النص الذي تبحث فيه

انت صاحب ارادة قوية الله معاك ... سوف تجد الحل
ارفق هذا الكتاب عسى ان يساعد
هَٰٓؤُلَآءِ قَوْمُنَا ٱتَّخَذُوا۟ مِن دُونِهِۦٓ ءَالِهَةً لَّوْلَا يَأْتُونَ عَلَيْهِم بِسُلْطَٰنٍۭ بَيِّنٍ فَمَنْ أَظْلَمُ مِمَّنِ ٱفْتَرَىٰ عَلَى ٱللَّهِ كَذِبًا
الرد
تم الشكر بواسطة: maxruined
#9
اخي العزيز يجب ان تدخل الصيغة الصحيحة وبنفس الترتيب عند البحث مثلا
هذا عند الادخال
format (d.value,("yyyy-MM-dd"))
وبنفس الطريقة عن البحث
بمعنى اخر تاجد من ترتيب الايام والاشهور والخ
الرد
تم الشكر بواسطة: maxruined
#10
Thumbs Up 
PHP كود :
ALTER proc [dbo].[SearchBetween2Dates]
@
Search1 datetime,
@
Search2 datetime
as
SELECT [ID_Order] as 'رقم الفاتورة'
 
    ,[Order_Date] as 'تاريخ الفاتورة'
 
    ,[Client_Name] as 'إسم العميل'
 
    ,[Description_Order] as 'وصف الفاتورة'
 
FROM [dbo].[Orders]
 
inner join Table_Add_Client
 on Table_Add_Client
.S_N=Orders.Client_S_N
 where Convert
(date,Order_Date,105between @Search1 and @Search2 

أخي الحبيب أرجو منك الانتباه قليلاً

بما انك عامل التاريخ String اي انك عامله في قاعدة البيانات (navchar) فلابد انا تحوله الى تاريخ اما عن طريق الكود او عن طريق قاعدة البيانات

فسوف اعدل على الكود تبعك الان المرفق والتعديل سوف يكن بعد كلمة where

 
الرد
تم الشكر بواسطة: maxruined



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم