C # и PostgreSQL INSERT INTO - PullRequest
       2

C # и PostgreSQL INSERT INTO

1 голос
/ 24 февраля 2012

У меня есть это:

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" )
);

Проблема в том, что когда я пытаюсь вставить в таблицу, по какой-то причине ничего не происходит.Это попытка - поймай, поэтому из запроса не генерируются исключения.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"]);
     }

Так что я не знаю, в чем проблема ...

1 Ответ

2 голосов
/ 24 февраля 2012

Я не думаю, что вы должны использовать NpgsqlDataAdapter для выполнения вставки, а использовать NpgsqlCommand, см. Пример ниже здесь .

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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...