问题描述
服务器人数多的时候出现ColumnXXXXdoesnotbelongtotable代码没问题,最主要的是全是查询语句出现的,返回是datetable类型更奇怪的是ColumnXXXXdoesnotbelongtotable这个页面执行的时候压根没有这个表,更别说这个字段刷新的时候这个页面要不就是出现ColumnAdoesnotbelongtotable1ColumnAdoesnotbelongtotable2Columnbdoesnotbelongtotable3还有Internalconnectionfatalerrordoesnotcontainapropertywiththename等等上传服务器,人多了就会出现,刷新1下,出现不一样的报错ServerErrorin'/'Application.--------------------------------------------------------------------------------DataBinding:'System.Data.DataRowView'doesnotcontainapropertywiththename'type'.Description:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestacktraceformoreinformationabouttheerrorandwhereitoriginatedinthecode.ExceptionDetails:System.Web.HttpException:DataBinding:'System.Data.DataRowView'doesnotcontainapropertywiththename'type'.很郁闷啊!!!求大神解决上传1下DLL,就好啦,过一会又出现这个问题,时好时坏。代码如下:publicstaticSqlCommandcmd=null;publicstaticSqlConnectionconn=null;publicstaticstringconnstr=Maticsoft.DBUtility.PubConstant.GetConnectionString("connstr");publicSQLHelper(){}#region建立数据库连接对象///<summary>///建立数据库连接///</summary>///<returns>返回一个数据库的连接SqlConnection对象</returns>publicstaticSqlConnectioninit(){try{conn=newSqlConnection(connstr);if(conn.State!=ConnectionState.Open){conn.Open();}}catch(Exceptione){thrownewException(e.Message.ToString());}returnconn;}#endregion#region设置SqlCommand对象///<summary>///设置SqlCommand对象///</summary>///<paramname="cmd">SqlCommand对象</param>///<paramname="cmdText">命令文本</param>///<paramname="cmdType">命令类型</param>///<paramname="cmdParms">参数集合</param>privatestaticvoidSetCommand(SqlCommandcmd,stringcmdText,CommandTypecmdType,SqlParameter[]cmdParms){cmd.Connection=conn;cmd.CommandText=cmdText;cmd.CommandType=cmdType;if(cmdParms!=null){cmd.Parameters.AddRange(cmdParms);}}#endregion#region执行不带参数sql语句,返回一个DataTable对象///<summary>///执行不带参数sql语句,返回一个DataTable对象///</summary>///<paramname="cmdText">相应的sql语句</param>///<returns>返回一个DataTable对象</returns>publicstaticDataTableGetDataTable(stringcmdText){SqlDataReaderreader;DataTabledt=newDataTable();try{init();cmd=newSqlCommand(cmdText,conn);reader=cmd.ExecuteReader(CommandBehavior.CloseConnection);dt.Load(reader);reader.Close();conn.Close();//---}catch(Exceptionex){thrownewException(ex.Message.ToString());}returndt;}#endregion#region执行带参数的sql语句或存储过程,返回一个DataTable对象///<summary>///执行带参数的sql语句或存储过程,返回一个DataTable对象///</summary>///<paramname="cmdText">sql语句或存储过程名</param>///<paramname="cmdType">命令类型</param>///<paramname="cmdParms">参数集合</param>///<returns>返回一个DataTable对象</returns>publicstaticDataTableGetDataTable(stringcmdText,CommandTypecmdType,SqlParameter[]cmdParms){SqlDataReaderreader;DataTabledt=newDataTable();try{init();cmd=newSqlCommand();SetCommand(cmd,cmdText,cmdType,cmdParms);reader=cmd.ExecuteReader(CommandBehavior.CloseConnection);dt.Load(reader);reader.Close();conn.Close();//---}catch(Exceptionex){thrownewException(ex.Message.ToString());}returndt;}#endregion大家看看那里有问题吗,谢谢大神门
解决方案
解决方案二:
有人没
解决方案三:
看看是不是缓存的关系,我以前也是遇到过。
解决方案四:
cmd是静态变量造成的
解决方案五:
把cmd定义在方法里面去
解决方案六:
不是缓存cmd确实是静态的怎么定义好
解决方案七:
表中不存在A、b、c列,你是不是没有表头就插入行了!
解决方案八:
已经把cmd定义到方法里了,刚才没看懂你说的意思,又看一遍知道了,我先测试下#region执行带参数的sql语句或存储过程,返回一个DataTable对象///<summary>///执行带参数的sql语句或存储过程,返回一个DataTable对象///</summary>///<paramname="cmdText">sql语句或存储过程名</param>///<paramname="cmdType">命令类型</param>///<paramname="cmdParms">参数集合</param>///<returns>返回一个DataTable对象</returns>publicstaticDataTableGetDataTable(stringcmdText,CommandTypecmdType,SqlParameter[]cmdParms){SqlDataReaderreader;DataTabledt=newDataTable();try{init();SqlCommandcmd=newSqlCommand();SetCommand(cmd,cmdText,cmdType,cmdParms);reader=cmd.ExecuteReader(CommandBehavior.CloseConnection);dt.Load(reader);reader.Close();//conn.Close();//---}catch(Exceptionex){thrownewException(ex.Message.ToString());}returndt;}#endregion
解决方案九:
系统键壮必不够高啊.
解决方案十:
服务器20003的和插入a,b,c列没关系时好时坏,人少的时候正常人一多服务器页面报错乱七八糟,当前页面都没写这sql语句,都能显示出来那sql语句是别的页面上的,怎么会出现这个页面。估计是并发问题,同时操作反映不过来。。方法我都试试,不止我一个人出现这个情况,很多人都是这样,我就郁闷别人怎么解决服务器上这种问题的
解决方案十一:
不行啊,把静态cmd变量放到方法一样,狂刷又出现了ServerErrorin'/'Application.--------------------------------------------------------------------------------DataBinding:'System.Data.DataRowView'doesnotcontainapropertywiththename'type'.Description:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestacktraceformoreinformationabouttheerrorandwhereitoriginatedinthecode.ExceptionDetails:System.Web.HttpException:DataBinding:'System.Data.DataRowView'doesnotcontainapropertywiththename'type'.SourceError:Line105:<tr>Line106:<tdstyle="text-align:left">Line107:<%#Eval("type")%>Line108:<ahref="WriteInfo.aspx?id=<%#Eval("id")%>"target="_blank"title="<%#Eval("title")%>">Line109:<%#Eval("title")%></a>
解决方案十二:
人家是说让你把static去掉
解决方案十三:
已经去掉了啊//publicstaticSqlCommandcmd=null;publicstaticSqlConnectionconn=null;publicstaticstringconnstr=Maticsoft.DBUtility.PubConstant.GetConnectionString("connstr");
解决方案十四:
conn也不要用静态的,用using确保每次数据库连接完关闭连接并销毁资源就可以了
解决方案十五:
用lock啊
解决方案:
部署后运行遇到的异常:System.ArgumentException:Column'"sl"'doesnotbelongtotableds.原来的方法:privatestaticdecimal[]Jsgs(DataSetds_c,decimalsumSl,decimalsumJe,decimaldhsl,decimaldhje,stringcol_1,stringcol_2){decimal[]strvalue=newdecimal[2];strvalue[0]=0;strvalue[1]=0;if(ds_c!=null&&ds_c.Tables[0]!=null&&ds_c.Tables[0].Rows.Count>0){foreach(DataRowdrrinds_c.Tables[0].Rows){decimalsl=decimal.Parse(drr[""“+col_1+”""].ToString());decimalckj=decimal.Parse(drr[""“+col_2+”""].ToString());sumSl=sumSl+dhsl*sl;sumJe=sumJe+dhsl*sl*ckj;}strvalue[0]=sumSl;strvalue[1]=sumJe;}else{strvalue[0]=sumSl+dhsl;strvalue[1]=sumJe+dhje;}returnstrvalue;}后来把:decimalsl=decimal.Parse(drr[""“+col_1+”""].ToString());decimalckj=decimal.Parse(drr[""“+col_2+”""].ToString());改成:decimalsl=decimal.Parse(drr["sl"].ToString());decimalckj=decimal.Parse(drr["ckj"].ToString());再次部署后运行就成功了,不在出现异常
解决方案:
解决方案:
Lock试试。