2012-02-24 13 views
0

C#とPostgreSQLのINSERT INTO

NpgsqlConnection c = new NpgsqlConnection(conx.getConexion()); 
c.Open(); 
NpgsqlDataAdapter da = new NpgsqlDataAdapter("Insert into \"Marca\" (\"NombreMarca\") values ('" + cbMarca.Text + "')", c); 
c.Close(); 

、表は以下のとおりです。

CREATE SEQUENCE idmarca 
    INCREMENT 1 
    MINVALUE 1 
    MAXVALUE 2147483647 
    START 10 
    CACHE 1; 

CREATE TABLE "Marca" 
("idMarca" integer NOT NULL DEFAULT nextval('idmarca'::regclass), 
    "NombreMarca" character varying(100) NOT NULL, 
    CONSTRAINT "PKMarca" PRIMARY KEY ("idMarca"), 
    CONSTRAINT "UNombreMarca" UNIQUE ("NombreMarca") 
); 

私は何も起こらない何らかの理由で、テーブルに挿入しようとすると問題が、あります。それはtry-catchであるため、クエリから例外が生成されることはありません。 cbMarcaはコンボボックスです。データベースとの接続はすでにテスト済みです。

また、この作品:...だから私は問題が何であるかを知らない

cbMarcaB.Items.Clear(); 
DataTable dt = cons.Select("Select \"NombreMarca\" From \"Marca\" Order by \"NombreMarca\""); 
for (int i = 0; i < dt.Rows.Count; i++) 
    { 
     cbMarcaB.Items.Add(dt.Rows[i]["NombreMarca"]); 
    } 

+0

結果のクエリ文字列を確認しましたか? –

答えて

1

私はあなたが使用むしろ、インサートを行うにはNpgsqlDataAdapterを使用しなければならないとは思いませんNpgsqlCommandは以下の例を参照してくださいfound here

string insertQuery = "INSERT INTO npdata VALUES (@key, @ndata)"; 
NpAdapter.InsertCommand = new NpgsqlCommand(insertQuery, conn); 

NpParam = NpAdapter.InsertCommand.Parameters.Add("@key", NpgsqlTypes.NpgsqlDbType.Text); 
NpParam.SourceColumn = "key"; 
NpParam.SourceVersion = DataRowVersion.Current; 

NpParam = NpAdapter.InsertCommand.Parameters.Add("@ndata", NpgsqlTypes.NpgsqlDbType.Bigint); 
NpParam.SourceVersion = DataRowVersion.Current; 
NpParam.SourceColumn = "ndata"; 
+0

私はそれを見ましたが、ライブラリにはNpAdapterがありません。それは私がDataAdapterを使用していた理由です。アダプタを使用するには、どのような参照をインポートする必要がありますか? – dbncourt

+0

申し訳ありませんが、コードの先頭には プライベートNpgsqlDataAdapter NpAdapterがあります。 – shenku

+0

私は答えを見つけました!とにかくみんな! :P – dbncourt