我試圖用串行主鍵向PostgreSQL表中插入一行,並且我需要在插入後檢索此列。我有這樣的事情:當使用ExecuteScalar插入時使用Npgsql檢索序列號
表「pais」有3列:id,pais,capital; 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')也返回null。
任何想法如何返回表的ID?我錯過了什麼嗎?
在此先感謝
我不讀你的查詢爲「選擇」任何值作爲標量返回? – 2011-04-07 15:31:16