SQL Server Stored Procedure with Output Parameter and ASP.NET SQLCommand

  • Thread starter Mr Not So Know It All
  • Start date
M

Mr Not So Know It All

im new to SQL Server and ASP.Net. Here's my problem. I have this SQL
Server stored procedure with an input parameter and output parameter

CREATE PROCEDURE [safety].[_getRCList]
@in_rc varchar(8)
@out_eList varchar(7) output
AS
select @out_eList = ecuid from _organization where rccode = @in_rc
GO

im trying to get the values from the select statement. for example, if
@in_rc is a value that has mutiple ecuids, i would like to have the
@out_eList equal to those values.

here is the asp.net code im using to get the output parameters from the
SQL Server stored procedure.

sqlComm = new sqlCommand("_getRCList",conn)
sqlComm.commandtype = commandtype.storedprocedure

'add input parameter
sqlComm.parameters.add("@in_mcuid","lxkqchy")
'add output parameter
sqlParameter = sqlComm.parameters.add("@out_eList",sqlDBtype.varchar)
sqlParameter.size = 20
sqlParameter.direction = parameterdirection.output
'execute command
dtrEList = sqlComm.executeReader(CommandBehavior.CloseConnection)
response.Write("<br> rows : " & dtrEList.hasrows & "<br>")
while dtrEList.read()
response.Write("<li>")
response.Write("CUID " & dtrEList(0) & "<br>")
end while
dtrEList.close()

is this the right way to get values from a stored procedure? please
help...
 
M

Mr Not So Know It All

thanks patrick
i read the article and it was helpful. it didn't mention how to return
multiple values with an output parameter. for example, say my select
statement returned four employee id numbers, how would i use an output
variable to return them? or maybe an output variable can only return
one value (as in the example from the article, the output parameter
returns one aggregate function result).

i found this in microsoft's web site

ExecuteReader Executes commands that return rows. For increased
performance, ExecuteReader invokes commands using the Transact-SQL
sp_executesql system stored procedure. As a result, ExecuteReader may
not have the desired effect if used to execute commands such as
Transact-SQL SET statements.

http://msdn.microsoft.com/library/d...rfsystemdatasqlclientsqlcommandclasstopic.asp

maybe that is my problem. thanks again patrick for the help and further
assistance.
 
B

Bruce Barker

sql output parameters (like input) are scalar, so you can not return
mutilple values, short of concating the values into a string. you want to
return a result set containg rows.

CREATE PROCEDURE [safety].[_getRCList]
@in_rc varchar(8)
@out_eList varchar(7) output
AS
select ecuid from _organization where rccode = @in_rc
GO

this will return multiple values. in .net you can access them with a
datareader or datatable.

-- bruce (sqlwork.com)
 
M

Mr Not So Know It All

thx bruce. that makes a lot of sense considering my results. i
appreciate the time and effort.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top