How to return Identity Column from SQL Server procedure in C# code -


i looking insert row table , return identity column in c# code. cannot seem syntax quite right.

here storted procedure

alter procedure [dbo].[sp_insertissue]         @application                       nchar(20)      = null  ,         @version                     nchar(10)              = null    ,         @createdby                       nvarchar(30)       = null  ,         @assignedto                    nvarchar(max)         = null  ,         @description                         nvarchar(max)   = null  ,         @userid                    int                     begin       set nocount on        insert dbo.issue           (               application                     ,             version                   ,             createdby                     ,             assignedto                   ,             description                          ,             userid                             )        values            (          @application                         ,         @version                          ,         @createdby                       ,         @assignedto                      ,         @description                           ,         @userid                             )            return scope_identity()  end 

here c# code

sqlcommand cmd = new sqlcommand();

        cmd.commandtext = "sp_insertissue ";         cmd.commandtype = system.data.commandtype.storedprocedure;         cmd.connection = m_connection;          sqlparameter parm = new sqlparameter("@issueid", sqldbtype.int);         parm.direction = parameterdirection.returnvalue;           cmd.parameters.add("@application", sqldbtype.varchar).value = p_application;         cmd.parameters.add("@version", sqldbtype.varchar).value = p_version;         cmd.parameters.add("@createdby", sqldbtype.varchar).value = p_createdby;         cmd.parameters.add("@assignedto", sqldbtype.varchar).value = p_assignedto;         cmd.parameters.add("@description", sqldbtype.varchar).value = p_description;         cmd.parameters.add("@userid", sqldbtype.int).value = p_userid;          var returnparameter = cmd.parameters.add("issueid", sqldbtype.int);         returnparameter.direction = parameterdirection.returnvalue;          /// send data db         int32 id = (int)cmd.executenonquery(); 

return -1 not identity column

you have make changes :

  1. select scope_identity() beter return scope_identity()
  2. in code have change cmd.executenonquery() int id = convert.toint32(cmd.executescalar());

Comments