C# Npgsql:INSERT命令不插入 问题是:

C# Npgsql:INSERT命令不插入 问题是:,c#,.net,database,c#-3.0,npgsql,C#,.net,Database,C# 3.0,Npgsql,NpgsqlCommand.Text:插入mytable(id,name)值(:id,:name) 参数1:name=id,value=42 参数2:name=name,value=“随便什么” command.ExecuteScalar()不会失败,但没有新行。也没有重复的id 守则: 上面的代码不是真正的代码。我不得不从几个DAL类中收集它来线性化它… 当然,该事务是在此代码之前创建的,之后提交 表定义: 问题: 胡 为什么? 我做错了什么 结果是: 始终检查您的事务是否已提交,并仔细检

NpgsqlCommand.Text:插入mytable(id,name)值(:id,:name)
参数1:name=id,value=42
参数2:name=name,value=“随便什么”

command.ExecuteScalar()
不会失败,但没有新行。也没有重复的id

守则: 上面的代码不是真正的代码。我不得不从几个DAL类中收集它来线性化它…
当然,该事务是在此代码之前创建的,之后提交

表定义: 问题:
  • 为什么?
  • 我做错了什么
结果是: 始终检查您的事务是否已提交,并仔细检查Commit()是否未被注释掉…

尝试使用

command.ExecuteNonQuery();

插入command.ExecuteScalar()

不要忘记提交,因为您正在使用一个事务

slapsforehead您是对的,但它仍然不起作用(ExecuteNonQuery()返回1)。奇怪的是,由于返回1表示一行受到影响(插入),我注释掉了提交。我真的很确定它就在那里。嗯,它就在那里,有点……我仔细检查了一下。Commit()已被注释。。。谢谢
CREATE TABLE mytable
(
    "name" character varying NOT NULL,
    id integer NOT NULL,
    CONSTRAINT mytable_pkey PRIMARY KEY (id)
)
WITH (
    OIDS=FALSE
);
ALTER TABLE mytable OWNER TO myuser;
command.ExecuteNonQuery();