C# - SQL Server Stored Procedures - Reference? -
this question has answer here:
- what nullreferenceexception, , how fix it? 29 answers
i working c#, sql server , writing web api application.
i creating sql server stored procedures , have several working, including inserting database, along updating entries in database. however, trying work outputs, , struggling simple.
i looking pass in email address, , return row id first match.
here stored procedure:
create procedure user_procedure_get_id @email varchar(200), @id int out select * [dbo].[users] email = @email set @id = id return @id
here c# code
public int getid( string emailaddress ) { // create sql command sqlcommand command = new sqlcommand(); command.connection = this.sqlconnection; // set command type use stored procedure command.commandtype = commandtype.storedprocedure; // name of stored procedure command.commandtext = "user_procedure_get_id"; // add email address command.parameters.add( new sqlparameter( "@email", emailaddress ) ); // add output param sqlparameter outputparam = new sqlparameter( "@id", sqldbtype.int ) { direction = parameterdirection.output }; command.parameters.add( outputparam ); // create reader sqldatareader reader = null; // execute command try { reader = command.executereader(); } catch (invalidcastexception ex) { } catch (sqlexception ex) { } catch (invalidoperationexception ex) { } catch (ioexception ex) { } { reader.close(); } debug.write( "user id: " + outputparam.value.tostring() ); return 0; }
i aware am not handling exceptions , i'm not doing value returned. @ point don't value returned , error:
system.nullreferenceexception: object reference not set instance of object.
thanks in advance.
you need set @id in select clause , don't return either (it's out parameter).
create procedure user_procedure_get_id @email varchar(255), @id int out select @id = id [dbo].[users] email = @email
this doesn't need stored procedure though. query it.
Comments
Post a Comment