【问题标题】:How to Filter DataGrid with 2 dates in vb.net如何在 vb.net 中使用 2 个日期过滤 DataGrid
【发布时间】:2014-03-30 01:53:48
【问题描述】:

我想知道如何过滤数据网格。

我曾多次尝试使用以下行制作过滤器。

Dim con As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\VS\NaiaPOS\myDB.accdb")
        Dim cmd As System.Data.OleDb.OleDbCommand
        Dim sql As String
        Dim da As New System.Data.OleDb.OleDbDataAdapter
        Dim ds As New DataSet()
        Try
            con.Open()
            sql = "Select * FROM rooms where [end] = ?"
            cmd = New OleDb.OleDbCommand(sql, con)
            cmd.Parameters.AddWithValue("@end", minus & " and" & ender)

            da.Fill(ds)

            GridSummary.DataSource = ds.Tables(0)
            ds = Nothing
            da = Nothing
            con.Close()
            con.Dispose()
        Catch ex As Exception

        End Try

这是我的错误:

The SelectCommand property has not been initialized before calling 'Fill'.

你能指出我正确的门来实现这一点吗?我想从我的表格中选择过去 2 天。

我在“rooms”表下有一个列名“end”。

【问题讨论】:

  • 谢谢你让我知道我错过了什么。您还可以帮我显示特定的列吗?
  • 将“*”替换为您想要返回的列名。前任。 SELECT Col1, Col2, Col3 FROM rooms where ...等
  • 我在上面的代码上尝试了我的 sql 查询,它显示了所有的列和行,现在我创建了这个查询,所以我可以显示某些行和列 "sql = "选择房间号,类型,状态, rate, [max], start, [end] FROM rooms where [end] = ?"" 但它什么也没显示...还有什么建议,我也更新了我的参数
  • 什么是“?”尝试使用Select type, status, rate FROM rooms where [end] = @end

标签: vb.net ms-access datagrid


【解决方案1】:

在调用fill之前不设置dataadapter的SelectCommand属性会导致错误。

da.SelectCommand = cmd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 2019-02-25
    • 2019-05-29
    相关资源
    最近更新 更多