أعتذر منك أخي خالد كامل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
