c# - linq to sql Error : the required column does not exist -
sometimes when visit asp.net website see error:
the required column 'code' not exist in results.
[invalidoperationexception: required column 'code' not exist in results.]
system.data.linq.sqlclient.objectreaderbase1.getcolumnordinals(namedcolumn[] namedcolumns) +709670
1..ctor(objectreadersession
system.data.linq.sqlclient.objectreaderbase1 session, namedcolumn[] namedcolumns, object[] globals, object[] arguments, int32 nlocals) +193
1.createreader(func
system.data.linq.sqlclient.objectreadersession2 fnmaterialize, namedcolumn[] namedcolumns, object[] globals, int32 nlocals, boolean disposedatareader) +113
2.create(dbdatareader datareader, boolean disposedatareader, ireaderprovider provider, object[] parentargs, object[] userargs, icompiledsubquery[] subqueries) +272
system.data.linq.sqlclient.objectreaderfactory
system.data.linq.sqlclient.sqlprovider.execute(expression query, queryinfo queryinfo, iobjectreaderfactory factory, object[] parentargs, object[] userargs, icompiledsubquery[] subqueries, object lastresult) +2596
system.data.linq.sqlclient.sqlprovider.executeall(expression query, queryinfo[] queryinfos, iobjectreaderfactory factory, object[] userarguments, icompiledsubquery[] subqueries) +188
system.data.linq.sqlclient.sqlprovider.system.data.linq.provider.iprovider.execute(expression query) +500 dal.dataclassesdatacontext.sp_select_agents(nullable1 code, nullable
1 just_act) +182 bll_agency.loadagency(int32 code, int32 actives) +62 bll_agency.loadagencytable(int32 code) +244
usercontrol_security_login.page_load(object sender, eventargs e) +221
and think error comes stored procedure has column , runs correctly run in sql server management studio.
when restart iis or replace app_global.asax
problem solve!
and after few days/hour problem occur again.
actually there 1 case don't need see code. possible problem caused because never close db connection. if never close db connection means never open db connection. database setups , network setups close / timeout connection if left open long.
to solve kind of problem use standard using()
blocks around db code. open connection use , close again consistently. .net's connection pooling , caching excellent job of ensuring type of use not cause performance penalty.
Comments
Post a Comment