2010-02-24 55 views
1

我有以下代码。我试着在所有的表格和参数中放上括号,但都没有运气。该查询虽然在Access中工作。SQL IErrorInfo.GetDescription error.Brackets not working

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的)

回答

1

好,因为没有一个决定回答我发现我自己。

似乎使用会话作为表名和日期作为参数是一个坏主意。我改变了他们,它的工作。

+0

感谢您的解决方案。显然'诊断'也是不起作用的表名。 – 2013-03-20 18:24:19