2017-02-15 48 views
0

Я использую Sybase Сервер, проект, подключенный к БД через DataSet. Я создал запрос вставки на мой TableAdapterScalar Insert Query return null

INSERT INTO DBA.opt_port(port, port_level, prim, kluch_raz, speed, agr_port, port_bad) 
VALUES (?, ?, ?, ?, ?, ?, ?) 

запроса выполнить режим установлен на скаляр, но после вызова этого запроса он всегда возвращает нуль.

var newId = opt_portTableAdapter.InsertNewPort(int.Parse(textBox1.Text), int.Parse(textBox2.Text), 
         textBox3.Text, kluch, int.Parse(textBox4.Text), ToNullableInt(textBox5.Text), 
         ToNullableInt(textBox6.Text)) 

Я также добавил параметр для запроса коллекции параметров, установить направление, как ReturnValue и SourceColumn к моему первичному ключу, но по-прежнему нулевой результат. Когда я вручную проверяю новую запись в своей таблице, она существует и устанавливается pKey. Как я могу получить свой первичный ключ после вставки строки?

запрос создания таблицы является

CREATE TABLE "DBA"."opt_port" (
    "port" smallint NOT NULL, 
    "port_level" smallint NOT NULL DEFAULT 1, 
    "prim" char(128) NULL, 
    "n_pp" integer NOT NULL DEFAULT autoincrement, 
    "kluch_raz" smallint NULL, 
    "speed" smallint NULL, 
    "agr_port" smallint NULL, 
    "port_bad" smallint NULL, 
    PRIMARY KEY ("n_pp") 
); 
+0

попробуйте запустить процедуру непосредственно в SQL с Params вы повторно проходя и проверить! –

ответ

0

CREATE ПРОЦЕДУРА [DBO]. [Add_opt_port] (@ вход1 VARCHAR (50), @ Input2 VARCHAR (50), @id INT выходного )

AS BEGIN SET NOCOUNT ON; INSERT INTO DBA.opt_port (порт, port_level) VALUES (@ input1, @ input2)

SET @id=SCOPE_IDENTITY() 
    RETURN @id 

END

+0

, пожалуйста, создайте процедуру, подобную приведенному выше примеру. –