簡體   English   中英

Npgsql.PostgresException:'55000:在此會話中尚未定義序列“ student_folio_id_seq”的當前時間”

[英]Npgsql.PostgresException: '55000: currval of sequence “student_folio_id_seq” is not yet defined in this session'

我是C#語法的新手,當用戶單擊“插入”按鈕時,嘗試將數據插入到兩個不同的表中。 同時,第二個插入語句需要獲取第一個插入語句ID作為外鍵。 主鍵ID是自動遞增。

此sql在PHP中有效,但在C#中似乎不起作用,並且我收到此拋出錯誤消息Npgsql.PostgresException:'55000:在此會話中尚未定義序列“ student_folio_id_seq”的當前時間”。

C#Postgres db的任何專家都可以給我一些語法錯誤的建議嗎? 而且如果可以舉例說明就很好。

這是我的代碼:

 connection.Open();
 NpgsqlCommand cmd = new NpgsqlCommand();
 cmd.Connection = connection;

 cmd.CommandText = "INSERT INTO student_folio 
 (f_name,l_name,ic,dob,gender,remark)VALUES(@f_name, 
 @l_name,@ic,@dob,@gender,@remark) RETURNING id";

 cmd.CommandText = "INSERT INTO contact (s_id, address)VALUES((SELECT 
 currval(pg_get_serial_sequence('student_folio', 'id'))),@address) ";
 cmd.CommandType = CommandType.Text;

似乎您正在嘗試重新分配具有新dml值的cmd.CommandText。 嘗試這個。

connection.Open();
NpgsqlCommand cmd = new NpgsqlCommand();
cmd.Connection = connection;

cmd.CommandText = "INSERT INTO student_folio (f_name,l_name,ic,dob,gender,remark)VALUES(@f_name, @l_name,@ic,@dob,@gender,@remark) RETURNING id; " +
            "INSERT INTO contact (s_id, address)VALUES((SELECT currval(pg_get_serial_sequence('student_folio', 'id'))),@address);";     
cmd.CommandType = CommandType.Text;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM