2012-02-24 3 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

Я нашел ответ! thx все равно ребята! :П – dbncourt

Смежные вопросы