2017-02-15 1 views
0

J'utilise Sybase Server, projet connecté à DB via DataSet. J'ai créé requête d'insertion sur mon TableAdapterScalar Insérer une requête return null

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

Interrogation mode d'exécution est réglé sur Scalar, mais après avoir appelé cette requête, il retourne toujours 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)) 

Je paramètre également ajouté pour interroger collection de paramètres, régler le sens que ReturnValue et SourceColumn à ma clé primaire, mais toujours résultat nul. Lorsque je vérifie manuellement un nouvel enregistrement dans ma table, il existe et pKey est défini. Comment puis-je obtenir ma clé primaire après l'insertion d'une ligne?

Table requête de création est

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

essayer d'exécuter la procédure directement dans le sql avec les params vous re passer et vérifier! –

Répondre

0

CREATE PROCEDURE [dbo]. [Add_opt_port] (@ input1 varchar (50), @ input2 varchar (50), @id int sortie )

AS BEGIN SET NOCOUNT ON; INSERT INTO DBA.opt_port (port, port_level) VALEURS (@ input1, @ input2)

SET @id=SCOPE_IDENTITY() 
    RETURN @id 

FIN

+0

s'il vous plaît créer une procédure comme ci-dessus exemple. –