我正在使用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'
错误:
Fill: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)
答案 0 :(得分: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