[英]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.