有时当我访问我的asp.net网站时会看到此错误:
结果中不存在所需的列“代码”。
[InvalidOperationException:所需的列'code'不存在 在结果中。]
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.创建(DbDataReader dataReader,Boolean disposeDataReader,IReaderProvider提供程序, Object [] parentArgs,Object [] userArgs,ICompiledSubQuery [] subQueries)+272
System.Data.Linq.SqlClient.ObjectReaderFactory
System.Data.Linq.SqlClient.SqlProvider.Execute(表达式查询, QueryInfo queryInfo,IObjectReaderFactory factory,Object [] parentArgs,Object [] userArgs,ICompiledSubQuery [] subQueries,Object lastResult)+2596
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(表达式查询, QueryInfo [] queryInfos,IObjectReaderFactory factory,Object [] userArguments,ICompiledSubQuery [] subQueries)+188
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(表达式 查询)+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
我认为这个错误来自一个存储过程,该存储过程当然具有此列并在SQL Server Management Studio中正确运行。
当我重新启动iis或替换app_global.asax
时,问题将解决!
几天/小时之后会再次出现问题。
答案 0 :(得分:0)
实际上有一种情况我们不需要看代码。您可能会因为从未关闭数据库连接而导致问题。如果您从未关闭数据库连接,则意味着您永远不会打开数据库连接。有时数据库设置和网络设置会在连接长时间打开时关闭/超时连接。
要解决此类问题,请在所有数据库代码周围使用标准using()
块。然后你将打开一个连接使用它并一致地再次关闭它。 .NET的连接池和缓存确保这种类型的使用不会导致性能损失。