各位有过用asp.net开发过网站的高手来帮帮我把,关于conn.Open()的问题,在线等,急啊~~~~
我用asp.net开发了一个网站,本地测试良好故已经在运行了,但是现在出现了一个很大的毛病,用不了多久,客户就反映有错误,我试了一下,每次都是提示:上个conn.Open()未关闭,我仔细检查了程序,没有问题,每个Open都对应了Close,想了好久,我估计是用户使用时由于网络速度的原因,在没有关闭的情况下重新Open了数据库,导致的错误,然而有一个用户出了毛病,所有用户都会因为数据库在未关闭的情况下无法正常使用T_T,那位有这样经验的高手能帮我解决这个问题啊,谢了先!
!
问题点数:50、回复次数:23Top
1 楼luckweb(冰川)回复于 2004-09-04 08:57:32 得分 0
不应该这样啊,access也可以同时连好几个用户的Top
2 楼hertcloud(·£孙子兵法£·)回复于 2004-09-04 08:58:47 得分 0
你 再仔细 看看 程序
应该是 有地方 没有关闭才会 这样!Top
3 楼azev(阿则)回复于 2004-09-04 09:12:21 得分 0
在open的时候检测一下是否未关闭
若有先关闭再开Top
4 楼coloeme(Terry.L)回复于 2004-09-04 09:14:50 得分 0
就是啊
要不把出错的 代码 和错误 贴出来
大家一起讨论讨论Top
5 楼Edison621(重新来过)回复于 2004-09-04 09:17:59 得分 30
这样试试:
if(conn.State==ConnectionState.Close)
{
conn.Open();
}Top
6 楼zyw2833(黑暗)回复于 2004-09-04 09:18:57 得分 0
可能是哪个DataReaer没有关闭。Top
7 楼Edison621(重新来过)回复于 2004-09-04 09:19:20 得分 0
更正:if(conn.State==ConnectionState.Closed)
Top
8 楼pingnt(淡蓝色的雪)回复于 2004-09-04 09:20:46 得分 0
在出错的那个打开objCon.open()前加一个判断:
If objCon.State = ConnectionState.Closed Then
objCon.open()
End If
'即如果objCon是关闭的,则重新打开连接.
Top
9 楼drk928(一起看斜阳)回复于 2004-09-04 09:21:26 得分 0
if(conn.State==ConnectionState.Close)
{
conn.Open();
}
Top
10 楼yistudio(阳光灿烂的日子)回复于 2004-09-04 09:27:16 得分 0
datareader is closed?Top
11 楼therainman(一只郁闷的猪)回复于 2004-09-04 09:29:23 得分 0
谢谢大家!由于有多个页面不好把代码帖上来,我再仔细看看Top
12 楼forideal(我心飞翔)回复于 2004-09-04 09:38:20 得分 0
试试在Close后,再DisposeTop
13 楼lii1027(小舟)回复于 2004-09-04 09:43:24 得分 0
if(conn.State!=Connection.Closed)
{
conn.Closed();
}Top
14 楼stan0714(回头望见你)回复于 2004-09-04 09:44:22 得分 0
写一个数据操作类~~~~~只要是数据库打开就这样
if(conn.State==ConnectionState.Close)
{
conn.Open();
}Top
15 楼gaofeng2000(高老师)回复于 2004-09-04 09:45:43 得分 0
upTop
16 楼therainman(一只郁闷的猪)回复于 2004-09-04 09:47:25 得分 0
if(conn.State==ConnectionState.Closed)
还有一个else怎么写?Top
17 楼xjshuaishuai(JimmyKo)回复于 2004-09-04 09:49:38 得分 0
using(SqlConnection conn=new SqlConnection("......")
{
}Top
18 楼therainman(一只郁闷的猪)回复于 2004-09-04 09:59:10 得分 0
现在关键是我不太确定到底是出错的页面conn没有关闭呢,还是上个页面的没有关闭,我试了一下Edison621(柏拉图的永恒)的办法,现在还没出什么毛病,不过不敢说就成功了,
因为当时程序写出来后,我本地测试过的,没有毛病了的,不知道一上Intnet就毛病来了,
再次谢谢大家,不知道谁以前也碰到过这种情况?Top
19 楼zyyzc()回复于 2004-09-04 10:08:14 得分 20
加try catchTop
20 楼Edison621(重新来过)回复于 2004-09-04 10:34:01 得分 0
不用写else了:)Top
21 楼therainman(一只郁闷的猪)回复于 2004-09-04 10:45:23 得分 0
不写else出问题了,如果conn的状态是Open的话那将什么都没有显示了,
我自己加了一个,就把if中的conn 打开状态下的操作copy过来了,当时是好的
但是好像还有问题,哎~~~~~~~不稳定阿,第一次写intnet网站的程序我快郁闷死了,
客户出问题就来电话了Top
22 楼therainman(一只郁闷的猪)回复于 2004-09-04 10:51:56 得分 0
try catch
不知道怎么用哦:(
还有现在有500多用户查询资料,谁能教我这种特耗资源的程序写起来应该注意什么?
感觉本地测试和实际使用起来的差别太大了,55555555Top
23 楼zyyzc()回复于 2004-09-04 15:39:33 得分 0
try
{
if(con!=null&&con.State!=ConnectionState.Open)
{
con.Open();
}
......
}
catch(Exception e1)
{
Response.Wrte(e1.Message);
Response.End;
}
finnally
{
if(con!=null&&con.State!=ConnectionState.Closed)
{
conn.Closed();
}
}Top




