Sql 2个日期和文本之间的日期过滤器
你好 我试图从两个日期和一个文本中筛选我的数据。 下面是我在datagridviewer上加载数据的代码Sql 2个日期和文本之间的日期过滤器,sql,vb.net,Sql,Vb.net,你好 我试图从两个日期和一个文本中筛选我的数据。 下面是我在datagridviewer上加载数据的代码 Private Sub frmMCOUT_Load_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim publictable As New DataTable Dim cmd As New OleDb.OleDbCommand Dim da As
Private Sub frmMCOUT_Load_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim publictable As New DataTable
Dim cmd As New OleDb.OleDbCommand
Dim da As New OleDb.OleDbDataAdapter
Dim sql As String = "SELECT DateEncoded as [Date Encoded], LOTNUMBER as [Lot Number], PARTSLIST as [Part Number - Part Name], prdInput as [Input], prdOutput as [Output], OPERATOR as [Operator], PROCESS as [Process], MACHINE as [Machine], REJECTS as [Reject], INTDATE as [Date], Shift as [Shift], PROCMONTH as [Year and Month], PARTNUMBER as [Part Number], PARTNAME as [Part Name], HELPERKEY as [Helper] from ProdOutput WHERE PROCESS = 'MACHINING'; "
Try
'open the connection
'conn.Open()
With cmd
.Connection = conn
.CommandText = sql
End With
'get the SQL statements used to select records in the datasource
da.SelectCommand = cmd
'it fills the datatable
da.Fill(publictable)
'populate the datagridview
dtgEntryList.DataSource = publictable
Catch ex As Exception
MsgBox(ex.Message)
Finally
conn.Close()
da.Dispose()
End Try
dtgEntryList.Sort(dtgEntryList.Columns(1), System.ComponentModel.ListSortDirection.Descending)
End Sub
我有两个日期选择器,我需要筛选这两个日期之间输入的日期。我还需要过滤数据,使其显示“加工”过程。你知道怎么做吗
谢谢我已将数据库代码与用户界面代码分开。这使得代码更易于维护 不要在使用连接的方法之外声明连接 使用
Using…End-Using
块以确保关闭并释放数据库对象
Private ConStr As String = "Your connection string"
Private publictable As DataTable
Private Sub frmMCOUT_Load_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
publictable = GetPartsData()
Catch ex As Exception
MsgBox(ex.Message)
Return
End Try
DataGridView1.DataSource = publictable
End Sub
Private Function GetPartsData() As DataTable
Dim dt As New DataTable
Dim sql As String = "SELECT DateEncoded as [Date Encoded], LOTNUMBER as [Lot Number], PARTSLIST as [Part Number - Part Name], prdInput as [Input], prdOutput as [Output], OPERATOR as [Operator], PROCESS as [Process], MACHINE as [Machine], REJECTS as [Reject], INTDATE as [Date], Shift as [Shift], PROCMONTH as [Year and Month], PARTNUMBER as [Part Number], PARTNAME as [Part Name], HELPERKEY as [Helper] from ProdOutput
WHERE PROCESS = 'MACHINING'
Order by LOTNUMBER DESC; "
Using conn As New OleDbConnection(ConStr),
cmd As New OleDbCommand(sql, conn)
conn.Open()
Using reader = cmd.ExecuteReader
dt.Load(reader)
End Using
End Using
Return dt
End Function
用户有机会选择日期后,使用Select
方法过滤DataTable
,并将结果行数组分配给网格。我不确定要筛选哪个日期字段。只需将dateencoded
更改为所需的字段。使用数据表中的字段名,而不是数据库中的字段名
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim StartDate = DateTimePicker1.Value
Dim EndDate = DateTimePicker2.Value
Dim filteredData = publictable.Select($"Date Encoded >= {StartDate} And Date Encoded <= {EndDate}")
DataGridView1.DataSource = filteredData
End Sub
Private子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
Dim StartDate=DateTimePicker1.Value
Dim EndDate=DateTimePicker2.Value
Dim filteredData=publictable。选择($”日期编码>={StartDate}和日期编码,因此您需要编写WHERE
子句来过滤这些值,并向命令中添加适当的参数。大量现有信息和示例供您遵循。如果您这样做时遇到问题,请告诉我们。您想在DB中过滤还是在VB中过滤?在VB中。我插入了数据网格视图