منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة فى البحث ما بين تاريخين
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم اخوانى 
عندى مشكلة وهى عند البحث ما بين تاريخين 
وهذا هو الكود المستخدم داخل ال 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.'
ارجو المساعده فى حل هذه المشكلة 
شكراً مقدماً
السلام عليكم ورحمة الله وبركاته
 اخي الكريم غير السطر الاخير الى التالي
كود :
where Order_Date >= @Search1 and Order_Date <= @Search2
(20-06-20, 12:56 AM)ابراهيم ايبو كتب : [ -> ]السلام عليكم ورحمة الله وبركاته
 اخي الكريم غير السطر الاخير الى التالي
كود :
where Order_Date >= @Search1 and Order_Date <= @Search2

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

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

كود :
Convert.ToDateTime(textBox1.Text);
او استحدم اداتي DateTimePicker  للبحث
(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")));
بخصوص هذه الرسالة
System.FormatException: 'String was not recognized as a valid DateTime.'
سببها حاجة من الاثنين
هو طريقة تعريفة لـ @Search1 , @Search2

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

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

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

انت صاحب ارادة قوية الله معاك ... سوف تجد الحل
ارفق هذا الكتاب عسى ان يساعد
اخي العزيز يجب ان تدخل الصيغة الصحيحة وبنفس الترتيب عند البحث مثلا
هذا عند الادخال
format (d.value,("yyyy-MM-dd"))
وبنفس الطريقة عن البحث
بمعنى اخر تاجد من ترتيب الايام والاشهور والخ
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