日期:2014-05-19  浏览次数:20367 次

如何写一个判断conn关没关闭的方法啊?
1/如何写一个判断conn关没关闭的方法啊?


如果检测没关就conn.close   请问该怎么写这个方法啊


2/还有就是我绑定数据的时候用repeater绑定数据   绑定完了是不是也要   close     啊


3/还有就是我打开网站总提示什么连接池已满,,请问该怎么解决啊


3个问题   100分送上               对不起我问的是3个问题不是一个呵呵   请都回答好么,我是菜鸟呵呵谢谢



------解决方案--------------------
可以通过SqlConnection.State 属性 来查看:

.NET Framework 类库
SqlConnection.State 属性
指示 SqlConnection 的状态。

命名空间:System.Data.SqlClient
程序集:System.Data(在 system.data.dll 中)

ConnectionState 枚举
Broken 与数据源的连接中断。只有在连接打开之后才可能发生这种情况。可以关闭处于这种状态的连接,然后重新打开。(该值是为此产品的未来版本保留的。)
Closed 连接处于关闭状态。
Connecting 连接对象正在与数据源连接。(该值是为此产品的未来版本保留的。)
Executing 连接对象正在执行命令。(该值是为此产品的未来版本保留的。)
Fetching 连接对象正在检索数据。(该值是为此产品的未来版本保留的。)
Open 连接处于打开状态。

------解决方案--------------------
比如:

if (SqlConnection.State != ConnectionState.Closed)
{
SqlConnection.Close();
}
------解决方案--------------------
真快,有没抢上..
------解决方案--------------------

...............
------解决方案--------------------
2/还有就是我绑定数据的时候用repeater绑定数据 绑定完了是不是也要 close 啊

------------------------------------

得到数据集后就可以close了
------解决方案--------------------
关于conn的close的,参考:

SqlConnection conn = new SqlConnection(connStr);
if (conn.State.ToString() == "Closed ") conn.Open();
SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn);
da.Fill(ds, "test01 ");
if (conn.State.ToString() == "Open ") conn.Close();

GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();

------解决方案--------------------
速度太快了,帮顶
------解决方案--------------------
第一个问题前面的人已经答了,我就来回答后面2个

2/还有就是我绑定数据的时候用repeater绑定数据 绑定完了是不是也要 close 啊
※※※※※※※※※※※※※※※※※※※※※※※※※※※※
答:你要关的是数据库链接,而不是repeater

3/还有就是我打开网站总提示什么连接池已满,,请问该怎么解决啊
※※※※※※※※※※※※※※※※※※※※※※※※※
数据库链接池中的最大链接数都是有限的,如果超过这个最大链接数就会出现这个情况,原因很可能是程序只打开数据库链接而没有关闭链接,办法就是每次用完数据库链接以后及时关闭。
------解决方案--------------------
第三个问题不清除,还没遇到过连接池已满的情况,试着给你这个站点单独建立个连接池试试


------解决方案--------------------
顶一下吧,没机会回答了
------解决方案--------------------
用连接对象的STATE属性可以进行判断
------解决方案--------------------
up
------解决方案--------------------
if (conn.State.ToString() == "Open ")

-----------------------
为什么一定要通过字符串来比较呢!
------解决方案--------------------
1、用sqlConnection.State判断是否关闭
2、最好是关闭连接,释放资源
3、可能你的sqlserver设置的连接数太少,而你的连接在使用完后没有被关闭,并且在多个地方打
------解决方案--------------------
if (conn.State != System.Data.ConnectionState.Open)