簡體   English   中英

Npgsql:INSERT命令不插入

[英]Npgsql: INSERT command does not insert

問題:

NpgsqlCommand.Text:插入mytable(id,name)值(:id,:name)
參數1:名稱= id,值= 42
參數2:name = name,value =“ whatever”

command.ExecuteScalar()不會失敗,但是沒有新行。 也沒有重復的ID。

編碼:

using (var command = connection.CreateCommand()) {
    command.Transaction = transaction;
    command.CommandText = "INSERT INTO mytable (id, name) VALUES (:id, :name)";       

    var idParameter = command.CreateParameter();
    idParameter.Direction = ParameterDirection.Input;
    idParameter.DbType = DbType.Int32;
    idParameter.ParameterName = "id";
    idParameter.Value = 42;
    command.Parameters.Add( idParameter );

    var nameParameter = command.CreateParameter();
    nameParameter.Direction = ParameterDirection.Input;
    nameParameter.DbType = DbType.String;
    nameParameter.ParameterName = "name";
    nameParameter.Value = "whatever";
    command.Parameters.Add( nameParameter );

    command.ExecuteScalar();
}

上面的代碼不是真實的代碼。 我必須從幾個DAL類中收集它以使其線性化...
事務當然是在此代碼之前創建的,然后再提交。

表定義:

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;

問題:

  • 胡?
  • 為什么?
  • 我究竟做錯了什么?

結果:

始終檢查是否已提交事務,並仔細檢查Commit()是否未注釋掉...

嘗試使用

command.ExecuteNonQuery();

命令的insetad.ExecuteScalar()

不要忘了提交,因為您正在使用事務

暫無
暫無

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

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