2010-03-19 3 views
0
private int GetNextId() 
{ 
    SQLiteConnector conn = new SQLiteConnector(false); 
    conn.OpenConnection(); 
    cmd = new SQLiteCommand("SELECT @id_account = MAX(id_account) FROM account"); 
    SQLiteParameter param = new SQLiteParameter("@id_account", DbType.Int32); 
    param.Direction = ParameterDirection.Output; 
    cmd.Parameters.Add(param); 
    cmd = conn.ExecuteReadeOutput(cmd); 
    conn.Close(); 
    return int.Parse(cmd.Parameters["id_account"].Value.ToString()) + 1; 
} 
... 
public SQLiteCommand ExecuteReadeOutput(SQLiteCommand cmd) 
{ 
    conn.Open(); 
    cmd.Connection = conn; 
    reader = cmd.ExecuteReader(); 
    reader.Close(); 
    return cmd; 
} 

Quand j'appelle la méthode GetNextId() se produit l'erreur suivante:Finisar SQLite Problème avec ParameterDirection

Specified argument was out of the range of valid values.

à la ligne:

param.Direction = ParameterDirection.Output;

Toute idée?

Merci.

Répondre

0

Pas tout à fait répondre directement à votre question, mais si vous venez d'écrire:

SELECT MAX(id_account) FROM account 

puis par un DataReader ordinaire vous pouvez récupérer la valeur unique. Dans ce cas, il n'est pas nécessaire de déclarer un paramètre.

Lucian