Stored Procedure for multiple value with single parameter in SQL Server -
i have form in c# listbox selected 4 items. want make single stored procedure using can find data single table selected item single parameter.
as beginner when comes sql server, don't know type of procedure thanks, not question's answer want single stored procedure items selected in listbox
create procedure procedurename ( @itemname varchar(50), ) begin ( select * item_master item_name = @itemname ) end
by query can find data 1 itemname, want selected items in listbox, don't know c# code also, plz me....
this simple example want. not want use hard-coded connection strings, in-line, , want error-handling, going clarity possible. want make column length greater 50 characters, made match column definition.
also, recommend generic approach, passing keys (column names) , values, able use sort of criteria, asked keep require, trimmed down essential.
this example returns employees firstname matching in list passed stored procedure (as user-defined table type).
first, create user-defined table type (to hold values want pass stored procedure) in sql server database follows:
create type [dbo].[filtervalues] table( [value] [varchar](50) not null, primary key clustered ( [value] asc ) )
the stored procedure return employees looks follows (note has user-defined table type type of single parameter passed in):
create procedure [dbo].[getemployees] ( @firstnamefiltervalues dbo.filtervalues readonly ) begin select * employees inner join @firstnamefiltervalues fv on fv.value = employees.firstname; end
that's sql server side done. call c#, can create datatable single column matching column name , populate values want. in simple example, populate 2 names, many want.
var filtervaluesdatatable = new datatable(); filtervaluesdatatable.columns.add(new datacolumn("value", typeof(string)) { allowdbnull = false }); filtervaluesdatatable.rows.add("frodo"); filtervaluesdatatable.rows.add("sam"); using (var connection = new sqlconnection("server=.;initial catalog=test;integrated security=true;")) { connection.open(); using (var command = connection.createcommand()) { command.commandtext = "getemployees"; command.commandtype = commandtype.storedprocedure; command.parameters.addwithvalue("@firstnamefiltervalues", filtervaluesdatatable); using (var reader = command.executereader()) { while (reader.read()) { console.writeline("{0} {1}", reader["firstname"], reader["lastname"]); } reader.close(); } } connection.close(); }
Comments
Post a Comment