c# - 使用 C# 在 postgresql 中返回最后插入的 ID

标签 c# .net postgresql

我是一个在表中插入记录的函数,我想获取插入的 ID。 我能怎么做?我必须重新查询吗?

        using (NpgsqlConnection conn = new NpgsqlConnection(ConfigurationManager.ConnectionStrings["AxWaveConnection"].ToString()))
        {

            conn.Open();
            NpgsqlTransaction transaction = conn.BeginTransaction();


            String query =
            "INSERT INTO Video (youtubeidvideo, title, rating, viewcount, duration, dataadded, errorflag, schedulingflag, schedulingdate, convertdate) " +
            "VALUES ('" + youtubeIdVideo + "','" + title + "'," + rating.ToString().Replace(',', '.') + "," + viewCount.ToString() +  "," +
            duration.ToString() + ", now(), false, false, null, null); ";

            NpgsqlCommand cmd = new NpgsqlCommand(query, conn, transaction);

            try
            {
                cmd.ExecuteNonQuery();


            }
            catch (Exception e)
            {
                scopeID = -1;        //Duplicate Record
            }

            transaction.Commit();
            conn.Close();
        }

最佳答案

你能试试这个吗:

SELECT CURRVAL(pg_get_serial_sequence('my_tbl_name','id_col_name'))

当然,您需要提供表名和列名。

这将用于当前 session /连接

http://www.postgresql.org/docs/8.3/static/functions-sequence.html

你也可以看看这个

参见 INSERT 的 RETURNING 子句陈述。基本上,INSERT 兼作查询并返回插入的值。

关于c# - 使用 C# 在 postgresql 中返回最后插入的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14851313/

相关文章:

c# - 从并发字典中获取所有值并在不丢失数据的情况下清除它

ruby-on-rails - 如何使用事件记录查询接口(interface)编写此查询?

c# - Youtube Live API - 使用 OAuth 拒绝广播权限

c# - Entity Framework 不更新 Amazon RDS SQL 数据库

c# - MSTest - 带有列表参数的最小起订量设置返回空列表

c# - 将输入从类似键盘的设备重定向到 Windows 环境中的后台进程

c# - 隐藏容器但不隐藏位于其上的文本

.net - Visual Studio 和 .NET 编程

mysql - "Repeatable read"与乐观

postgresql - Odoo filter postgres view 使用向导数据报告日期