Aquela é certamente uma melhoria… agora você apenas necessidade de pisar com o código e de encontrar que objeto é zero e de elaborar por que.
Realmente eu penso que eu ver o problema, você pareço usar uma mistura de OleDb e de Sql - você criou uma conexão de OleDb e a pediu então para lhe dar um comando - qual, um OleDbCommand - mas por outro lado você é tentado moldá-lo a um SqlCommand qual não trabalhará.
Você precisa de decidir se você está trabalhando em OleDb ou no usuário nativo do Sql e para assegurar então seu código é consistente com sua escolha.