0

我正在使用 VS2012 wpf 应用程序 vb.net MS Access 2010。我正在尝试通过执行查询oledbconnection,它返回一个错误,但是当我通过 MS Access 2010 执行相同的查询时,它返回表没有任何问题。怎么了?

询问:

SELECT Agents.[PF], Agents.[User_ID], Agents.[First_Name], Agents.[Second_Name], Agents.[Third_Name], Agents.[Family_Name], Agents.[Gender], Agents.[Contract_Type], Agents.Area, Teams.Team_Name, Agents.Hiring_Date, Resignation_Pool.Resignation_Date, Resignation_Pool.Effective_Date, Replace(IIf(Skills.Skill_Directory Is Null,'','Directory, ')+IIf(Skills.Skill_TRC Is Null,'','TRC, ')+IIf(Skills.Skill_Prepaid Is Null,'','Prepaid, ')+IIf(Skills.Skill_Postpaid Is Null,'','Postpaid, ')+IIf(Skills.Skill_KeyAccount Is Null,'','KeyAccount, ')+IIf(Skills.Skill_Blackberry Is Null,'','Blackberry, ')+IIf(Skills.Skill_Broadband Is Null,'','Broadband, ')+IIf(Skills.Skill_Concierge Is Null,'','Concierge, ')+IIf(Skills.Skill_ISP Is Null,'','ISP, ')+IIf(Skills.Skill_Mada Is Null,'','Mada, ')+IIf(Skills.Skill_CSCS Is Null,'','CSCS, ')+'$',', $','') AS Skills FROM ((Agents INNER JOIN Resignation_Pool ON Agents.PF = Resignation_Pool.PF) LEFT JOIN Teams ON Agents.Team =  Teams.ID) LEFT JOIN Skills ON Agents.PF = Skills.PF WHERE Agents.Contract_Status = 'Active'

错误:

填充:SelectCommand.Connection 属性尚未初始化。

代码:

            Dim SQL10 As New OleDb.OleDbCommand("SELECT Agents.[PF], Agents.[User_ID], Agents.[First_Name], Agents.[Second_Name], Agents.[Third_Name], Agents.[Family_Name], Agents.[Gender], Agents.[Contract_Type], Agents.Area, Teams.Team_Name, Agents.Hiring_Date, Resignation_Pool.Resignation_Date, Resignation_Pool.Effective_Date, " & Sql & " FROM ((Agents INNER JOIN Resignation_Pool ON Agents.PF = Resignation_Pool.PF) LEFT JOIN Teams ON Agents.Team =  Teams.ID) LEFT JOIN Skills ON Agents.PF = Skills.PF WHERE Agents.Contract_Status = 'Active'")
            Dim DataAdapter10 As New OleDb.OleDbDataAdapter(SQL10)
            Dim DataTable10 As New DataTable()
            DataAdapter10.Fill(DataTable10)
4

1 回答 1

0

错误消息表明您的 OleDbDataAdapter 没有与有效连接关联的 SelectCommand。因此,您应该尝试以这样的方式更改您的代码

  Using OleDbConnection connection = new OleDbConnection("your_connection_string")
      connection.Open
      Dim SQL10 As New OleDb.OleDbCommand("......", connection) ' add this to the OleDbCommand'
      Dim DataAdapter10 As New OleDb.OleDbDataAdapter(SQL10)
      Dim DataTable10 As New DataTable()
      DataAdapter10.Fill(DataTable10)
  End Using
于 2013-03-11T11:57:06.220 回答