I used SQL Server 2005 for my small web application. I Want pass parameters to SP . But there is one condition. number of parameter that can be change time to time. Think ,this time i pass name and Address , next time i pass name,surname,address ,
this parameter range may be 1-30 ,
Another way you could do this is by serializing the arguments as a JSON string and passing that into your stored procedure. You can use the NewtonSoft. JSON package to do something like this: string json = JsonConvert. SerializeObject(obj); and pass the json var into your proc.
Setting up multiple parameters is very easy to do. You just need to list each parameter and the data type separated by a comma as shown below.
As a program, a stored procedure can take parameters. There are three types of parameters: IN, OUT and INOUT.
A stored procedure can have a maximum of 2100 parameters specified. Each parameter is assigned a name, a data type, and direction like Input, Output, or Return. If a direction is not specified, then by default, it is Input. You can specify a default value for the parameters.
You declare the procedure with default parameters and you invoke it with named parameters instead of positional parameters:
CREATE PROCEDURE usp_myProcedure
  @name varchar(100) = '',
  @surname varchar(100) = '',
  @address varchar(100) = ''
AS
BEGIN
...
END
to invoke it from T-SQL:
exec usp_myProcedure @name='John', @surname = 'Doe';
exec usp_myProcedure @name='Jane', @address = '123 Anystreet';
To invoke it from C#:
SqlCommand cmd = new SqlCommand('usp_MyProcedure', ...);
cmd.CommandType = commandtype.StoredProcedure;
cmd.Parameters.AddWithValue('@name', 'John');
cmd.Parameters.AddWithValue('@surname', 'Doe');
                        You can use XML types. Here is a sample procedure:
CREATE PROCEDURE udsp_VariableParams(@params XML)
AS
BEGIN
    DECLARE @vdoc INT
    EXEC sp_xml_preparedocument @vdoc OUTPUT, @params
    SELECT * FROM OPENXML(@vdoc, '/params/param', 1) WITH ([paramname] VARCHAR(40), [paramvalue] VARCHAR(150))
    EXEC sp_xml_removedocument @vdoc    
END
EXEC udsp_VariableParams 
  '<params>
     <param paramname="name" paramvalue="value"/>
     <param paramname="address" paramvalue="value"/>
  </params>'
EXEC udsp_VariableParams 
  '<params>
     <param paramname="name" paramvalue="value"/>
     <param paramname="surname" paramvalue="value"/>
     <param paramname="address" paramvalue="value"/>
  </params>'
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With