我有下面的代码。我试着把括号放在所有的表和参数周围,但没有结果。但是,查询在Access中工作。
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim str As String
Dim dr As OleDbDataReader
DataGridView1.Rows.Clear()
Try
cn = New OleDbConnection("Provider=microsoft.Jet.OLEDB.4.0;Data Source=G:\Sean\BMSBonder3_0.mdb;")
cn.Open()
str = "Select [Session.BonderIdentifier], [Bonder.ID], [Session.UserName], [Session.Login], [Session.Logout] From [Session] Left Join " _
& " Bonder On Session.Login = [Bonder.Date] Where [BasicLogin] >= ? AND [BasicLogin] <= ? AND BonderIdentifier = '?'"
cmd = New OleDbCommand(str, cn)
cmd.Parameters.AddWithValue("Start", MonthCalendar1.SelectionStart)
cmd.Parameters.AddWithValue("End", MonthCalendar1.SelectionEnd)
cmd.Parameters.AddWithValue("BID", ListBox1.SelectedItem)
dr = cmd.ExecuteReader
While dr.Read()
If dr.Item(0).ToString <> "" Then
DataGridView1.Rows.Add(dr.Item(0), dr.Item(1), dr.Item(2), dr.Item(3), dr.Item(4))
End If
End While
DataGridView1.Sort(DataGridView1.Columns.Item("Login_Time"), System.ComponentModel.ListSortDirection.Ascending)
dr.Close()
cn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try编辑:
实际错误-> IErrorInfo.GetDescription与E_FAIL(0x80004005)失败
发布于 2010-02-25 00:18:18
既然没人愿意回答,我就自己找到了。
使用会话作为表名和日期作为参数似乎是个坏主意。我改变了它们,它起了作用。
https://stackoverflow.com/questions/2330510
复制相似问题