我正在使用 Sybase 服务器,项目通过DataSet连接到数据库。 我在tableAdapter上创建了插入查询
INSERT INTO DBA.opt_port(port, port_level, prim, kluch_raz, speed, agr_port, port_bad)
VALUES (?, ?, ?, ?, ?, ?, ?)
查询执行模式设置为Scalar,但在调用此查询后,它始终返回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))
我还在查询参数集合中添加了参数,将Direction设置为ReturnValue,将SourceColumn设置为我的主键,但仍为null结果。 当我手动检查表中的新记录时,它存在并且设置了它的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 :(得分:0)
CREATE PROCEDURE [dbo]。[Add_opt_port] (@ input1 varchar(50), @ input2 varchar(50), @id int输出 )
AS 开始 设置NOCOUNT ON; INSERT INTO DBA.opt_port (port,port_level) VALUES(@ input1,@ input2)
SET @id=SCOPE_IDENTITY()
RETURN @id
END