See the question and my original answer on StackOverflow

I think the OleDbCommand does not support parameters like this (OleDbCommand.Parameters Property):

The OLE DB .NET Provider does not support named parameters for passing parameters to an SQL statement or a stored procedure called by an OleDbCommand when CommandType is set to Text. In this case, the question mark (?) placeholder must be used.