如何显示两个日期之间的所有记录(VB.Net)

时间:2011-07-10 16:19:35

标签: vb.net visual-studio-2010

我在Form中有一个Table1和一个本地数据库以及DataGridView。我还有2个DatetimePickers和一个按钮。

enter image description here

Date列定义为DateTime数据类型。

如何按DataGridView

显示button1中两个日期之间的记录

我想用DataGridView Task - >这样做Add Query... - > Query Builder...

如果这不简单,欢迎任何解决方案。

2 个答案:

答案 0 :(得分:3)

这是一个解决方案(由我和谷歌搜索)。

这是一种简单的方式。

DataGridView - > Add Query... - > Query Builder..。 在Date单元格中的Filter列(或其他任何内容)中写入:BETWEEN @ Date1 AND @ Date2。 单击“确定”,然后再次单击“确定”。

Form区域,您现在在表单标题区域下面看到一个带有2个文本框的新行。首先是Date1,第二个是Date2。文本框区域后面是一个名为Fillby的按钮。 将Date1,Date2和Fillby的名称从属性更改为您喜欢的任何内容,例如来自: - 收件人: - 搜索。

另一种方法更难实现。

首先在buttons区域放置2 Timepickers和2 Form

DataGridView中的下一个 - > Add Query... - > Query Builder..。 在Date单元格中的Filter列(或其他任何内容)中写入:BETWEEN @ Date1 AND @ Date2。 单击“确定”,然后再次单击“确定”。

Form的代码视图区域中粘贴第一个按钮(Button1)的代码:

Public Function GetFromDate(ByVal value As DateTime) As DateTime
        Return New DateTime(value.Year, value.Month, value.Day, 0, 0, 0, 0)
    End Function

    Public Function GetToDate(ByVal value As DateTime) As DateTime
        Return New DateTime(value.Year, value.Month, value.Day, 23, 59, 59, 999)
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim BeginningDateTime As Date = GetFromDate(DateTimePicker1.Value)
        Dim EndingDateTime As Date = GetToDate(DateTimePicker2.Value)
        Try
            Me.Table2TableAdapter.FillBy(Me.Database1DataSet1.Table2, New System.Nullable(Of Date)(CType(BeginningDateTime, Date)), New System.Nullable(Of Date)(CType(EndingDateTime, Date)))
     Catch ex As System.Exception
         System.Windows.Forms.MessageBox.Show(ex.Message)
     End Try
    End Sub

接着是第二个Button(Button2)的代码:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Table2TableAdapter.Fill(Me.Database1DataSet1.Table2)
    End Sub

你必须改变:

1)Table2TableAdapter在你的表适配器中。

2)Database1DataSet1在您的数据库数据集中。

3)Table2在你的表格中。

如果您的数据库存在差异,则代码FillByDateTimePicker1DateTimePicker2必须更改。

有关代码的更多格式,您可以从查询生成器中查看代码。 它看起来像:

Private Sub FillByToolStripButton_Click...

在那里你可以找到所有信息来改变上面的代码。

毕竟你可以删除这段代码(Private Sub FillByToolStripButton_Click...)。

这就是我找到的所有内容,我解决了在两个日期之间搜索的问题。

答案 1 :(得分:1)

最简单,最简单的方法......

Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click

    'Filter the Connections Date wise
    Me.TblUserBindingSource.Filter = "doj >= '" & DateTimePicker1.Value & "' and doj <= '" & DateTimePicker2.Value & "'"

结束子