我有一個table.this是我的表腳本: -如何返回自動生成的ID在插入查詢在Postgres的SQL
CREATE TABLE news
(
news_id bigint NOT NULL DEFAULT nextval('news_seq'::regclass),
title character varying(1024),
description character varying(2024),
CONSTRAINT pk_news_newsid PRIMARY KEY (news_id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE news OWNER TO viewer;
現在我想自動插入上的新紀錄產生news_id
在桌子裏。
這是C#功能插入新聞: -
public Int64 AddNews(News newNews)
{
string query = string.Empty;
try
{
string dateFormat = ConfigurationManager.AppSettings["DateFormat"];
NpgsqlParameter[] parm = new NpgsqlParameter[2];
parm[0] = new NpgsqlParameter("title", newNews.NewsTitle);
parm[1] = new NpgsqlParameter("des", newNews.NewsDescription);
query = @" INSERT INTO news(title, description)
VALUES (:title, :des)
Returning news_id";
int id=NpgSqlHelper.ExecuteNonQuery(connectionString, CommandType.Text, query, parm);
return id;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
On executing this function I always get the -1 value
在此先感謝
在執行上的pgAdmin以下查詢給出正確的結果:
INSERT INTO news(title, description)
VALUES ('title','description')
Returning news_id
因爲我看到的只是'NpgSqlHelper.ExecuteNonQuery'。 – 2013-01-25 12:20:10
我正在使用NpgsqlCommand.ExecutenonQuery – Suri
@ facebook-100001745831878以及那可能是你的問題。 ExecuteNonQuery返回**受影響的行數(如果已知); -1否則**。閱讀我爲ExecuteScalar發佈的鏈接。 – 2013-01-28 19:22:53