في المشروع عادة أستخدم الكود التالي مع قواعد بينات oledb لجلب السجلات بين تاريخين
أحدهما تاريخ إنشاء السجل ويكون مسجل في القاعدة
والأخر هو التاريخ الفعلي في المشروع وهو غير مسجل في القاعدة
ولكن يبدو أن الأمر مختلف مع قاعدة بينات sql
كود :
DTPDate1.Value = Date.Today.AddDays(-10)
Dim d1, d2 As String
d1 = Format(DTPDate.Value, "yyyy/MM/dd")
d2 = Format(DTPDate1.Value, "yyyy/MM/dd")
da = New SqlDataAdapter("select * from MovTable where MovAddedDate Between #" & d1 & "# AND #" & d2 & "#", sqlcon)
d1 d2 هي DateTimePicker
d1 هو تاريخ تسجيل السجل في قاعدة البيانات
d2 هو تاريخ الوقت الفعلي في المشروع
أرجو تعديل الكود حتى يعمل مع قاعدة بينات sql
جرّب أخي الكريم استبدال العلامة # بالعلامة '
جرّب أخي الكريم استبدال العلامة # بالعلامة '
(23-03-20, 02:50 AM)عبد العزيز البسكري كتب : [ -> ]جرّب أخي الكريم استبدال العلامة # بالعلامة '
جرّب أخي الكريم استبدال العلامة # بالعلامة '
بعد التعديل الذي ذكرت الكود لا يوجد به أخطاء ولكن لا يرجع المعلومات للكومبو
النتيجة صفر
سلام الله عليكم أخي العزيز ورحمة الله وبركاته
بما أنك تعتمد قواعد بيانات من نوع سيكوال فلماذا لا تضع جملة الإستعلام في Stored Procedure ثم استدعاءها في المشروع؟
(23-03-20, 03:16 AM)khodor1985 كتب : [ -> ]سلام الله عليكم أخي العزيز ورحمة الله وبركاته
بما أنك تعتمد قواعد بيانات من نوع سيكوال فلماذا لا تضع جملة الإستعلام في Stored Procedure ثم استدعاءها في المشروع؟
إستخدامي لقواعد سيكوال حديث ولا أملك الخبره الكافيه بها ولكن الأكواد جميعها تم كتابتها بشكل جيد وتعمل بشكل وترجع المعلومات المطلوبة بشكل صحيح وسريع وجميل وتوقفت عند هذا الكود الخاص بالتاريخ فقط !
طيب شوف، عند برنامج تيم فيور
(23-03-20, 03:27 AM)khodor1985 كتب : [ -> ]طيب شوف، عند برنامج تيم فيور
ربما نجد الحل عند بعض الأخوان هنا
ما يحتاج تيم فيور
عموما شكرا جزيلا لك
(23-03-20, 05:57 AM)سعود كتب : [ -> ]ماهي رسالة الخطأ
عند تنفيذ الكود السابق رسالة الخطأ هي التالية
System.Data.SqlClient.SqlException: 'Incorrect syntax near '#'.'
وقد قمت بإستبدال علامة الهاش ولا يوجد خطأ إلا أن الكود لا يرجع أي بيانات للكومبو
السلام عليكم ورحمة الله وبركاته
بخصوص الخطاء فالامر بسيط وواضح جداً وهذا ما يقع به الجميع
لتبسيط الامر ... هل ينفع وضع قيمة نص فى قيمة مطلوب ان تكون رقم او تاريخ ؟؟؟
هذا ما تفعله عندما قمت بتعريف كلاً من D1 و D2 كونه من نوع نص وليس تاريخ
فى Sql عندما تضع # تعنى ان المحتوى يجب ان تكون من قيمة تاريخ ولكن ما وضعته هو تاريخ على نمط نص
كل ما عليك فعله هو التالى
اما تغيير هذا السطر
كود :
Dim d1, d2 As String
الى
أو هذا السطر
كود :
da = New SqlDataAdapter("select * from MovTable where MovAddedDate Between #" & d1 & "# AND #" & d2 & "#", sqlcon)
ليكون بهذا الشكل
كود :
da = New SqlDataAdapter("select * from MovTable where MovAddedDate Between #" & CDate(d1) & "# AND #" & CDate(d2) & "#", sqlcon)
لتبسيط الامر اكثر انظر الى الكود بشكل الذى استخدمته سيقوم بحل الامر
PHP كود :
DTPDate1.Value = Date.Today.AddDays(-10)
Dim d1, d2 As Date
d1 = Format(DTPDate.Value, "yyyy/MM/dd")
d2 = Format(DTPDate1.Value, "yyyy/MM/dd")
da = New SqlDataAdapter("select * from MovTable where MovAddedDate Between #" & d1 & "# AND #" & d2 & "#", sqlcon)
لعل الان الصورة واضحة لديك ومعرفة السبب لمذا كان يظهر الخطاء
ولماذا عند تغيير # الى ' كان لا يوجد خطاء ولكن بلا نتيجة
# = تاريخ
' = نص
بدون = رقم
بالتوفيق