c# - DataTable is empty from calling stored procedure -
i have stored procedure takes in table value parameter. when test procedure table value parameter in sql server management studio 2014 correct values returned.
declare @numberlist dbo.numberlist insert @numberlist(value) values (16101197); insert @numberlist(value) values (16101196); insert @numberlist(value) values (16101194); insert @numberlist(value) values (16101042); insert @numberlist(value) values (16101190); insert @numberlist(value) values (16101191); --select value @numberlist exec getclientleadsbyclientid @numberlist however, in c# code datatable empty. clientids match values above when test in sql server management studio.
private datatable getclientleadsbyclientids(list<int> clientids) { var datatable = new datatable(); var numberlist = addclientidstonumberlisttemporarytable(clientids); var connection = new sqlconnection(configurationmanager.connectionstrings["myconnectionstring"].connectionstring); using (var command = new sqlcommand("getclientleadsbyclientid", connection) { commandtype = commandtype.storedprocedure } ) using (var dataadapter = new sqldataadapter(command)) { var parameter = new sqlparameter(); parameter.parametername = "@numberlist"; parameter.sqldbtype = sqldbtype.structured; parameter.value = numberlist; dataadapter.fill(datatable); } return datatable; } i use method create table value parameter.
private datatable addclientidstonumberlisttemporarytable(list<int> clientids) { var datatable = new datatable("numberlist"); datatable.columns.add("value", typeof(int)); (int = 0; < clientids.count; i++) { datatable.rows.add(clientids[i]); } return datatable; }
you need add parameter created command.
using (var dataadapter = new sqldataadapter(command)) { var parameter = new sqlparameter(); parameter.parametername = "@numberlist"; parameter.sqldbtype = sqldbtype.structured; parameter.value = numberlist; //add command.parameters.add(parameter); dataadapter.fill(datatable); }
Comments
Post a Comment