تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] خطأ كود إستعلام بين تاريخين
#11
(23-03-20, 10:42 AM)kiki كتب : السلام عليكم ورحمة الله وبركاته
بخصوص الخطاء فالامر بسيط وواضح جداً وهذا ما يقع به الجميع
لتبسيط الامر ... هل ينفع وضع قيمة نص فى قيمة مطلوب ان تكون رقم او تاريخ ؟؟؟
هذا ما تفعله عندما قمت بتعريف كلاً من D1 و D2 كونه من نوع نص وليس تاريخ
فى Sql عندما تضع # تعنى ان المحتوى يجب ان تكون من قيمة تاريخ ولكن ما وضعته هو تاريخ على نمط نص

كل ما عليك فعله هو التالى
اما تغيير هذا السطر

كود :
Dim d1, d2 As String

الى

كود :
Dim d1, d2 As Date

عند تنفيذ هذا الخيار يحدث الخطأ التالي :
System.Data.SqlClient.SqlException: 'Conversion failed when converting date and/or time from character 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)

وعند تنفيذ هذا الخيار ينتج عنه الخطأ التالي :
System.Data.SqlClient.SqlException: 'Incorrect syntax near '#'.'

-------------------------------------
لتبسيط الامر اكثر انظر الى الكود بشكل الذى استخدمته سيقوم بحل الامر
PHP كود :
      DTPDate1.Value Date.Today.AddDays(-10)

 
      Dim d1d2 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

لعل الان الصورة واضحة لديك ومعرفة السبب لمذا كان يظهر الخطاء
ولماذا عند تغيير # الى ' كان لا يوجد خطاء ولكن بلا نتيجة
# = تاريخ
' = نص
بدون = رقم
بالتوفيق

جميل جدا تجاوبك حفظك الله ولكن للأسف لازالت المشكلة قائمة

وزيادة في توضيح المطلوب هو فقط طلب جلب السجلات التي تحمل تواريخ تقع بين D1 , D2 
والتي من خلالها يتم معرفة السجلات التي تم تسجيلها خلال العشرة الأيام السابقه

.

.

قبل لحظات وضع أحد الأخوه رد على السؤال 
فقد وضع الجملة التالية 

PHP كود :
      DTPDate1.Value Date.Today.AddDays(-10)
 
       Dim d1d2 As String

        da 
= New SqlDataAdapter("select * from MovTable where MovAddedDate Between @d1 AND @d2"sqlcon)
 
       da.SelectCommand.Parameters.AddWithValue("@d1"DTPDate.Value.Date)
 
       da.SelectCommand.Parameters.AddWithValue("@d2"DTPDate1.Value.Date

وبعد أن قمت بتجربتها لم أجد بها أخطاء ولكنها لم ترجع أي نتيجة للكومبو فقمت بتعديل ترتيب الداتا في الأسطر الأخيرة 
وجعلت D
d1", DTPDate1.Value.Date
و
d2", DTPDate.Value.Date

فتم الأمر وتم جلب السجلات الأخيرة بشكل صحيح 

وفعلا شكرا لصاحب المشاركة 
وشكرا لكل من تفضل بتفعيل السؤال والمساهمه في حله 

تحياتي لكم حفظكم الله
الرد }}}
تم الشكر بواسطة: kiki


الردود في هذا الموضوع
RE: خطأ كود إستعلام بين تاريخين - بواسطة ZaerAllail - 23-03-20, 12:43 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ابسط كود لمعرفة المدة بين تاريخين سعود 4 3,945 25-05-17, 09:15 AM
آخر رد: Buseiligm

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


يقوم بقرائة الموضوع: