首页 新闻 会员 周边

急...ASP.NET网站多次刷新出现异常

0
悬赏园豆:30 [已解决问题] 解决于 2008-11-03 23:35

是一个WAP网站项目,网站使用修改过的数据库操作类...连接,DataRead都有关闭...

一般速度的访问都没问题...可是如果一直刷新或者狂点页面链接就会出现以下错误:
1:异常详细信息: System.IndexOutOfRangeException: PageTopics (有调用DataRead,可能是这个出的问题)

2:异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例(好像是调用了DataSet,但是数据库有数据)

3:异常详细信息: System.IndexOutOfRangeException: 在位置 0 处没有任何行。(同2)

问题是:正常速度的访问都不会出现以上错误...为什么狂刷新就会这样....求救高手阿.困扰好久了.没力了!

问题补充: 数据库操作类代码:SqlHelper 这个操作类是改自yueue.ADOKeycap开源数据库组件 1.02 http://www.cnblogs.com/yueue/ 尊重原作者 public class SqlHelper { private DbDataAdapter mDataAdapter; //指向传入的DbDataAdapter的引用 private DbCommand mCommand; //指向传入的DbDataAdapter.SelectCommand的引用 public static SqlConnection Conn = new SqlConnection(); //连接 /// <summary> /// 构造函数 /// </summary> /// <param name="DDA">获得一个实例化了的DbDataAdapter的派生类</param> public SqlHelper(string ConnStr) { CreateDatabase(ConnStr); //DbDataAdapter DDA = CreateDatabase("ConnectionString"); //mDataAdapter = DDA; //mCommand = DDA.SelectCommand; } /// <summary> /// 用来创建Database对象 /// </summary> /// <param name="DatabaseNameInConfigFile">在配置文件中定义的数据库名称name,用来确定对哪个数据库进行操作</param> /// <returns>返回对应数据库的Database对象</returns> /// public void CreateDatabase(string DatabaseNameInConfigFile) { //string pn = ConfigurationManager.ConnectionStrings[DatabaseNameInConfigFile].ProviderName; //读取配置文件 string cs = ConfigurationManager.ConnectionStrings[DatabaseNameInConfigFile].ConnectionString; //以下判断数据库类型并创建相应的对象 SqlDataAdapter sqlda = new SqlDataAdapter(); sqlda.SelectCommand = new SqlCommand(); Conn = new SqlConnection(cs); sqlda.SelectCommand.Connection = Conn; DbDataAdapter DDA = sqlda; mDataAdapter = DDA; mCommand = DDA.SelectCommand; } /// <summary> /// 执行数据库命令返回受影响的行数 /// </summary> /// <param name="SQLText">SQL语句</param> /// <returns>受影响的行数</returns> public int ExecuteNonQuery(string SQLText) { if (IsProcedure(SQLText)) { mCommand.CommandType = CommandType.StoredProcedure; } else { mCommand.CommandType = CommandType.Text; } mCommand
osno的主页 osno | 初学一级 | 园豆:195
提问于:2008-10-28 23:00
< >
分享
最佳答案
0

从你描述的现象看,有可能是你用了一些静态或全局的对象,却没有注意线程的保护。

eaglet | 专家六级 |园豆:17139 | 2008-10-29 06:26
其他回答(5)
0

手工狂点都能出问题说明你的应用的抗压力能力小.用压力测试软件就可以知道最大压力承受能力.你就得想想如何扩容了.

mikelij | 园豆:250 (菜鸟二级) | 2008-10-28 23:32
0

线程的问题吧,看看数据库连接是不是不正确的使用了单键模式?或者哪儿使用了静态变量?

是谁啊? | 园豆:339 (菜鸟二级) | 2008-10-29 08:22
0

明海哥哥 | 园豆:185 (初学一级) | 2008-10-29 09:21
0

俄,关注中。。。。

tertyufer | 园豆:35 (初学一级) | 2008-10-30 11:31
0

线程的问题吧

你lock了吗?

zjy | 园豆:3194 (老鸟四级) | 2008-10-30 13:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册