Проблема с ExecuteScalar со вставкой Npgsql - PullRequest
0 голосов
/ 07 апреля 2011

I ', пытаюсь вставить строку в таблицу PostgreSQL с серийным первичным ключом, и мне нужно извлечь этот столбец после того, как он был вставлен.Я получил что-то вроде этого:

Таблица "Pais" имеет 3 столбца: ID, Pais, заглавная;id представляет собой последовательный столбец и является его первичным ключом.

NpgsqlCommand query = new NpgsqlCommand("insert into pais(nombre, capital) values(@nombre, @capital)", conn);
query.Parameters.Add(new NpgsqlParameter("nombre", NpgsqlDbType.Varchar));
query.Parameters.Add(new NpgsqlParameter("capital", NpgsqlDbType.Varchar));
query.Prepare();
query.Parameters[0].Value = this.textBox1.Text;
query.Parameters[1].Value = this.textBox2.Text;
Object res = query.ExecuteScalar();
Console.WriteLine(res);

Он вставляет строку в таблицу, но значение "res" равно нулю.Если я вставляю с помощью nexval ('table_sequence') также возвращает ноль.

Есть идеи, как я могу вернуть идентификатор таблицы?Я что-то упустил?

Заранее спасибо

1 Ответ

1 голос
/ 07 апреля 2011

Ответили здесь .Способ заключается в использовании «Select currval ()» или «Select lastval ()» сразу после оператора вставки.

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