Is order of parameters for database Command object really important?
===

I was debugging a database operation code and I found that proper UPDATE was never happening though the code never failed as such. This is the code:  

            condb.Open();
            OleDbCommand dbcom = new OleDbCommand("UPDATE Word SET word=?,sentence=?,mp3=? WHERE id=? AND exercise_id=?", condb);
            dbcom.Parameters.AddWithValue("id", wd.ID);
            dbcom.Parameters.AddWithValue("exercise_id", wd.ExID);
            dbcom.Parameters.AddWithValue("word", wd.Name);
            dbcom.Parameters.AddWithValue("sentence", wd.Sentence);
            dbcom.Parameters.AddWithValue("mp3", wd.Mp3);


But after some tweaking this worked: 

            condb.Open();
            OleDbCommand dbcom = new OleDbCommand("UPDATE Word SET word=?,sentence=?,mp3=? WHERE id=? AND exercise_id=?", condb);
            dbcom.Parameters.AddWithValue("word", wd.Name);
            dbcom.Parameters.AddWithValue("sentence", wd.Sentence);
            dbcom.Parameters.AddWithValue("mp3", wd.Mp3);                         
            dbcom.Parameters.AddWithValue("id", wd.ID);
            dbcom.Parameters.AddWithValue("exercise_id", wd.ExID);


1. Why is it so important that the parameters in WHERE clause has to be given the last in case of OleDb connection? Having worked with MySQL previously, I could (and usually do) write parameters of WHERE clause first because that's more logical to me. 

2. Is parameter order important when querying database in general? Some performance concern or something?

3. Is there a specific order to be maintained in case of other databases like DB2, Sqlite etc?