Проблема Finisar SQLite с параметромDirection - PullRequest
0 голосов
/ 19 марта 2010
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() возникает следующая ошибка:

Указанный аргумент находится вне диапазона допустимых значений.

в строке:

param.Direction = ParameterDirection.Output;

Есть идеи?

Спасибо.

1 Ответ

0 голосов
/ 20 марта 2010

Не совсем прямой ответ на ваш вопрос, но что если вы напишите просто:

SELECT MAX(id_account) FROM account

, то через обычный DataReader вы сможете получить уникальное значение.В этом случае нет необходимости объявлять какие-либо параметры.

Lucian

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...