c# - Return Parameter From SQL Query -
i trying run sql stored procedure , return value query. syntax throws error of:
cannot implicitly convert type 'system.data.sqlclient.sqlparameter' 'decimal'
this syntax, should alter in order have run properly?
public decimal returnvaluefromquery(string connectionstring, string sqlquery, int blah, datetime d1, datetime d2) { string cs = system.configuration.configurationmanager.appsettings[connectionstring].tostring(); try { using (sqlconnection conn = new sqlconnection(cs)) using (sqlcommand cmd = conn.createcommand()) { cmd.commandtext = sqlquery; cmd.connection = conn; cmd.commandtype = commandtype.storedprocedure; cmd.parameters.add("@blah", sqldbtype.int).value = blah; cmd.parameters.add("@startdate", sqldbtype.date).value = d1; cmd.parameters.add("@enddate", sqldbtype.date).value = d2; var returnparameter = cmd.parameters.add("@returnval", sqldbtype.int); returnparameter.direction = parameterdirection.returnvalue; conn.open(); cmd.executenonquery(); return returnparameter; } } catch { } }
your method says return decimal, writing return returnparameter
not possible because doesn't respect signature of method.
you should convert value
property of return parameter decimal value
return convert.todecimal(returnparameter.value);
however have perplexities choice use parameter parameterdirection.returnvalue
. have correctly written (sqldbtype.int
) these parameters can return integers not decimals. perhaps, should consider parameter parameterdirection.output
, pass in calling list of stored procedure
of course if have integer there possibility change method return value int.
, suggest remove empty catch block. these blocks deadly when have exception because never know it.
Comments
Post a Comment