24-09-19, 05:12 AM
الصفحات : 1 2
24-09-19, 05:15 AM
ضع اسم العميل بعد where مباشرة ثم التاريخ
24-09-19, 05:26 AM
(24-09-19, 05:15 AM)حريف برمجة كتب : [ -> ]ضع اسم العميل بعد where مباشرة ثم التاريخ
انا استخدمت هذا الكود فى الصب
كود :
Public Sub SEARCH2DATE(ByVal order_date As DateTime, ByVal order_date2 As DateTime, ByVal mo_name As String)
DT_SEARCH.Clear()
Dim CMDSEARCH As New OleDbCommand(" SELECT * FROM ORDERS WHERE mo_name = '" & mo_name & "'and order_date >= @order_date AND order_date <= @order_date2 ", con)
CMDSEARCH.Parameters.Clear()
CMDSEARCH.Parameters.Add("@mo_name", OleDbType.VarChar).Value = mo_name
CMDSEARCH.Parameters.Add("@order_date", OleDbType.Date).Value = "#" & order_date & "#"
CMDSEARCH.Parameters.Add("@order_date2", OleDbType.Date).Value = "#" & order_date2 & "#"
Try
If con.State = 1 Then con.Close()
con.Open()
DT_SEARCH.Load(CMDSEARCH.ExecuteReader)
con.Close()
CMDSEARCH = Nothing
Catch ex As Exception
con.Close()
MsgBox(Err.Description, MsgBoxStyle.Information)
Finally
If con.State = ConnectionState.Open Then con.Close()
End Try
End Subوهذا الكود عند حدث الكليك فى زر البحث
كود :
SEARCH2DATE(DateTimePicker1.Value, DateTimePicker2.Value, mo_name.Text)
DGV_ORDERSM.DataSource = DT_SEARCH24-09-19, 05:29 AM
تأكد من الديت تايم بيكر انها تاريخ فقط وليس تاريخ ووقت .
24-09-19, 05:34 AM
حضراتكم سيبكم من الكود ده خلاص
انا معايا تاريخبن
datetimepaker1 وdatetimepaker2 و اسم العميل mo_name فى جدول واحد اسمه orders
اريد البحث باسم العميل عن الفواتير بين التاريخين دول ولكم منى جزيل الشكر
انا معايا تاريخبن
datetimepaker1 وdatetimepaker2 و اسم العميل mo_name فى جدول واحد اسمه orders
اريد البحث باسم العميل عن الفواتير بين التاريخين دول ولكم منى جزيل الشكر
24-09-19, 05:38 AM
(24-09-19, 05:34 AM)خالد كامل1 كتب : [ -> ]حضراتكم سيبكم من الكود ده خلاص
انا معايا تاريخبن
datetimepaker1 وdatetimepaker2 و اسم العميل mo_name فى جدول واحد اسمه orders
اريد البحث باسم العميل عن الفواتير بين التاريخين دول ولكم منى جزيل الشكر
الأول اعمل مسج يظهر لك محتوى الديت تايم بيكر وشوف نفس تنسيق البيانات الموجوده في حقل التاريخ .
24-09-19, 06:36 AM
أعتذر منك أخي خالد كامل1 لقد كانت هناك أخطاء إملائية في بعض الأكواد السابقة
جرب الكود التالي
مثلاً الخطأ في الكود الأول:
الخطأ الأول هو
جرب الكود التالي
كود :
Public Sub SEARCH2DATE(ByVal order_date As Date, ByVal order_date2 As Date, ByVal mo_name As String)
Try
DT_SEARCH = New DataTable
DT_SEARCH.Clear()
Dim da As New OledbDataAdapter(" SELECT * FROM ORDERS WHERE mo_name = '" & mo_name & "' and order_date >='" & order_date & "' AND order_date <= '" & order_date2 & "'", con)
da.Fill(DT_SEARCH)
'
DataGridView1.DataSource = DT_SEARCH
Catch ex As Exception
MsgBox(Err.Description, MsgBoxStyle.Information)
Finally
con.Close()
End Try
End Subمثلاً الخطأ في الكود الأول:
كود :
Public Sub SEARCH2DATE(ByVal order_date As DateTime, ByVal order_date2 As DateTime, ByVal mo_name As String)
DT_SEARCH.Clear()
Dim CMDSEARCH As New OleDbCommand(" SELECT * FROM ORDERS WHERE order_date >= @order_date AND order_date <= @order_date2 and mo_name = @mo_name ", con)
CMDSEARCH.Parameters.Clear()
CMDSEARCH.Parameters.Add("@mo_name", OleDbType.VarChar).Value = mo_name
CMDSEARCH.Parameters.Add("@order_date", OleDbType.Date).Value = "#" & order_date & "#"
CMDSEARCH.Parameters.Add("@order_date2", OleDbType.Date).Value = "#" & order_date2 & "#"
CMDSEARCH.Parameters.Add("@mo_name", OleDbType.VarChar).Value = mo_name
Try
If con.State = 1 Then con.Close()
con.Open()
DT_SEARCH.Load(CMDSEARCH.ExecuteReader)
con.Close()
CMDSEARCH = Nothing
Catch ex As Exception
con.Close()
MsgBox(Err.Description, MsgBoxStyle.Information)
Finally
If con.State = ConnectionState.Open Then con.Close()
End Try
End Subالخطأ الأول هو
CMDSEARCH.Parameters.Add("@mo_name", OleDbType.VarChar).Value = mo_name
CMDSEARCH.Parameters.Add("@order_date", OleDbType.Date).Value = "#" & order_date & "#"
CMDSEARCH.Parameters.Add("@order_date2", OleDbType.Date).Value = "#" & order_date2 & "#"
CMDSEARCH.Parameters.Add("@mo_name", OleDbType.VarChar).Value = mo_name
الجملة مكررة
يظهر أيضاً في الكود التالي اعطاء قيمة للاسم مباشرة
Public Sub SEARCH2DATE(ByVal order_date As DateTime, ByVal order_date2 As DateTime, ByVal mo_name As String)
DT_SEARCH.Clear()
Dim CMDSEARCH As New OleDbCommand(" SELECT * FROM ORDERS WHERE mo_name = '" & mo_name & "'and order_date >= @order_date AND order_date <= @order_date2 ", con)
CMDSEARCH.Parameters.Clear()
اسناد قيمة لباراميتر غير موجود في جملة sql
CMDSEARCH.Parameters.Add("@mo_name", OleDbType.VarChar).Value = mo_name
CMDSEARCH.Parameters.Add("@order_date", OleDbType.Date).Value = "#" & order_date & "#"
CMDSEARCH.Parameters.Add("@order_date2", OleDbType.Date).Value = "#" & order_date2 & "#"
Try
If con.State = 1 Then con.Close()
con.Open()
DT_SEARCH.Load(CMDSEARCH.ExecuteReader)
con.Close()
CMDSEARCH = Nothing
Catch ex As Exception
con.Close()
MsgBox(Err.Description, MsgBoxStyle.Information)
Finally
If con.State = ConnectionState.Open Then con.Close()
End Try
End Sub
الصفحات : 1 2