It tells the order by having to specify the parameter values in that order.
However, a more robust solution would be to use named parameters, e.g.
SqlCeCommand cmd = new SqlCeCommand("INSERT INTO Customers (CustomerName,CustomerAddr,CustomerCity) values(@name , @addr, @city)");
cmd.Parameters.Add("@name", SqlDbType.NVarChar, 120).Value = "customer name";
cmd.Parameters.Add("@addr", SqlDbType.NVarChar, 120).Value = "customer address";
cmd.Parameters.Add("@city", SqlDbType.NVarChar, 120).Value = "customer city";