标量插入查询返回null

时间:2017-02-15 06:03:38

标签: c# sql dataset sybase tableadapter

我正在使用 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" )
);

1 个答案:

答案 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