2017-02-15 102 views
0

我正在使用Sybase服务器,通过DataSet连接到DB的项目。 我创建插入查询我的TableAdapter标量插入查询返回null

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

查询执行模式设置为标量,但调用这个查询后,总是返回null。

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

我还添加参数查询参数集,设置方向返回值和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

尝试用你再经过并检查PARAMS直接执行SQL中的程序! –

回答

0

CREATE PROCEDURE [DBO]。[Add_opt_port] (@ INPUT1 VARCHAR(50),@ 输入2 VARCHAR(50), @id INT输出 )

AS BEGIN SET NOCOUNT ON; INSERT INTO DBA.opt_port (端口,port_level) VALUES(@输入1,@输入2)

SET @id=SCOPE_IDENTITY() 
    RETURN @id 

END

+0

请创建类似上例的程序。 –