2011-04-07 4 views
0

I '의 문제가 있습니다. 직렬 기본 키가있는 PostgreSQL 테이블에 행을 삽입하려고하는데이 열을 삽입 한 후에이 열을 검색해야합니다. 나는 다음과 같은 것을 얻었습니다.ExecuteScalar with Npgsql insert

"pais"테이블은 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"값은 null입니다. nexval ('table_sequence')과 함께 삽입하면 null도 반환됩니다.

테이블의 ID를 어떻게 반환 할 수 있습니까? 나는 무엇인가 놓치고 있습니까?

미리 감사

+0

SO – TheLQ

+0

에 있어야합니다. StackOverflow에서 대신이 질문을해야합니다. –

+0

그럼. 프로그래머는 무엇에 관한 것입니까? – Cheluis

답변

1

에 그것은 here 대답했다. 이 방법은 insert 문 바로 뒤에 "select currval()"또는 "select lastval()"을 사용합니다.