【问题标题】:Retrieving data between two dates from Access database using VB.NET使用 VB.NET 从 Access 数据库中检索两个日期之间的数据
【发布时间】:2016-06-06 03:21:32
【问题描述】:

我想在 datagridview 中显示来自数据库的数据。我在da.Fill(ds, "SAMPLE") 上遇到“数据类型不匹配错误”错误。请看截图。 我的日期格式是 datetimepicker 和数据库值的“短日期”。

Imports System.Data.OleDb
Public Class Form1
Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Recto D Sanchez Jr\Documents\sample.accdb"
Dim MyConn As OleDbConnection
Dim da As OleDbDataAdapter
Dim ds As DataSet
Dim tables As DataTableCollection
Dim source1 As New BindingSource

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    MyConn = New OleDbConnection
    MyConn.ConnectionString = connString
    ds = New DataSet
    tables = ds.Tables
    da = New OleDbDataAdapter("Select * from SAMPLE where [LOGDATE] between '" & DateTimePicker1.Text & "' And '" & DateTimePicker2.Text & "'", MyConn)
    da.Fill(ds, "SAMPLE")
    Dim view As New DataView(tables(0))
    source1.DataSource = view
    DataGridView1.DataSource = view
End Sub

结束类

error screenshot

【问题讨论】:

  • 你试过删除"SAMPLE"吗?
  • 试过了。同样的错误。 :(

标签: vb.net ms-access datagridview


【解决方案1】:

由于您的 DateTimePicker 控件已经处理了正确的 DateTime 值,因此使用 参数化查询可能会更好:

MyConn = New OleDbConnection(connString)
Dim cmd As New OleDbCommand("SELECT * FROM [SAMPLE] WHERE [LOGDATE] Between ? And ?", MyConn)
cmd.Parameters.AddWithValue("?", DateTimePicker1.Value.Date)
cmd.Parameters.AddWithValue("?", DateTimePicker2.Value.Date)
da = New OleDbDataAdapter(cmd)
ds = New DataSet
da.Fill(ds, "SAMPLE")

它会为您省去处理不同日期格式、分隔日期文字和其他潜在陷阱的麻烦。

【讨论】:

  • 你成功了!非常感谢你! :D
【解决方案2】:

试试

da = New OleDbDataAdapter("Select * from SAMPLE where [LOGDATE] between #" & DateTimePicker1.Value.ToString("MM/dd/yyyy HH:mm:ss") & "# And #" & DateTimePicker2.Value.ToString("MM/dd/yyyy HH:mm:ss") & "#", MyConn)

【讨论】:

    猜你喜欢
    • 2020-01-26
    • 2023-04-04
    • 2014-09-28
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2012-05-01
    相关资源
    最近更新 更多