Odbc non è possibile utilizzare i parametri denominati. Ciò significa che la stringa di comando utilizza segnaposto per ogni parametro e questo segnaposto è un singolo punto interrogativo, non il nome del parametro.
OdbcCommand.Parameters
allora avete bisogno di aggiungere i parametri della collezione nello stesso ordine in cui appaiono nella stringa di comando
OdbcCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM [user] WHERE id = ?";
cmd.Parameters.Add("@id", OdbcType.Int).Value = 4;
OdbcDataReader reader = cmd.ExecuteReader();
Hai anche un altro problema, la parola utente è un riservato parola chiave per MS Access Database e se si desidera utilizzarlo come nome di campo o nome tabella, è necessario racchiudere ogni riferimento con parentesi quadre. Suggerisco caldamente, se è possibile, di cambiare il nome della tabella perché verrai colpito molto spesso da questo problema.
Qual è il messaggio di errore esatto? – Steve
ERRORE [07002] [Microsoft] [Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 1. Questo errore indica che manca un parametro. – pava91
ODBC non supporta i parametri nominati; http://msdn.microsoft.com/en-us/library/system.data.odbc.odbccommand.parameters.aspx utilizza ordinali '?' segnaposto - se si utilizza Access esiste un motivo per utilizzare ODBC anziché OLEDB (che permetterà loro)? –