كود :
da = New SqlDataAdapter("select * from bill where bil_date Between #" & Date1.Value & "# And #" & Date2.Value & "#", con)
da.Fill(dt)
أبغى أبحث بين تاريخين .. Date1.Value و Date2.Value
يعطيني خطأ والرسالة (Incorrect syntax near '2'.)
راجعتها ملييييييييييييووووون مرة ومالقيت خطأ .. أرجوكم فين الخطأ؟؟
كود :
da = New SqlDataAdapter("select * from bill where bil_date Between datevalue ('" & Date1.Value.tostring & "') And datevalue ('" & Date2.Value.tostring & "')", con)
نسيت ان اذكر انو دالة الdatavalue تعمل مع داته بيس اكسس اما اذا كنت تستخدم داته sql ففقط استبدل ال # الموجوده في كودك ب '
[quote pid='53020' dateline='1421754742']
[/quote]
كود :
da = New SqlDataAdapter("select * from bill where bil_date Between & Date1.Value & " And " & Date2.Value ", con)
يجب ازالة الرمز #
اخواني الاعزاء البحث عن سجلات في مدى معين من التواريخ يكون المدى من ادخال المستخدم وليس مخزن
جرب المثال التالي:
tb table
tn string
dt datetime shortdate
كود :
Public Class Form1
Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=db.accdb"
Dim con As New OleDb.OleDbConnection(str)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim da As New OleDb.OleDbDataAdapter("select * from tb where dt between #" & d1.Value.ToShortDateString & "# and #" & d2.Value.ToShortDateString & "#", con)
Dim dt As New DataTable
da.Fill(dt)
ListBox1.DataSource = dt
ListBox1.DisplayMember = "tn"
ListBox1.ValueMember = "tid"
End Sub
End Class
d1,d2 كلها DateTimePicker,
للمعلومية حسب تجربتي الامر لا ينجح الا اذا كان تاريخ الجهاز ميلادي
شكرا لكم أحبتي شكرا جزيييييييييييلا ..
المشكلة تم حلها عن طريق توحيد فورمات كتابة التاريخ بين حق البحث والتيكستات ..
أكرر شكري ..
تحت أمرك أخوي سعود ..
كود :
d1 = Format(Date1.Value, "yyyy-MM-dd HH:mm:ss")
d2 = Format(Date2.Value, "yyyy-MM-dd HH:mm:ss")
خزنت قيم date time بعد تغيير الفورمات الخاصة بها في متغيرات string اسمها d1,d2 ..
وادخلت المتغيرات في الدالة ..
كود :
da = New SqlDataAdapter("select * from bill where cost > 0 and bil_date between '" & d1 & "' and '" & d2 & "'", con)
ولله الحمد نجحت الطريقة وطلع الخطأ في طريقة العرض الفورمات القديمة غير متوافقة مع العمود الذي تبحث عنه ..
شكرا جزيلا وطريقتك أيضا تعتبر حل بس شفتها بعد مليون تجربة وتوصلي للحل أعلاه ..