2010-03-19 64 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; 
} 

当我打电话GetNextId()会出现以下错误的方法:Finisar公司的SQLite问题与ParameterDirection

Specified argument was out of the range of valid values.

在行:

param.Direction = ParameterDirection.Output;

任何想法?

谢谢。

回答

0

不太直接回答你的问题,但如果你只是写:

SELECT MAX(id_account) FROM account 

然后通过普通DataReader可以检索的独特价值。在这种情况下,不需要声明任何参数。

Lucian