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() возникает следующая ошибка:
GetNextId()
Указанный аргумент находится вне диапазона допустимых значений.
в строке:
param.Direction = ParameterDirection.Output;
Есть идеи?
Спасибо.
Не совсем прямой ответ на ваш вопрос, но что если вы напишите просто:
SELECT MAX(id_account) FROM account
, то через обычный DataReader вы сможете получить уникальное значение.В этом случае нет необходимости объявлять какие-либо параметры.
DataReader
Lucian