I have been debugging this query for the last 40 minutes, and the problem apparently is the order of the parameters after all.
SELECT * FROM tblSomeThing WHERE id = @id AND debut = @dtDebut AND fin = @dtFin
Then I add the parameters this way, notice that the two last parameters are switched, I get no results.
cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;
cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;
When I declare the parameters the way they appear in the queury everything works perfectly.
I thought named parameters were at first place to address this problem! what am I missing here?
Thank you
Not positive, but it doesn't look like your parameters are added in the same sequence, nor same named values as their "@" counterparts of the query...
If I recall correctly, if the
OleDbCommand
in ADO.NET functions similarly to the older ADO library/libraries (used in VB6, VBA, etc.) then the parameter collection does not define parameters by name, only by position within the collection. This seems to be the behaviour you are experiencing.According to http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommand.parameters.aspx OleDbCommand does not support named parameter
So order of parameter is important.