日期:2014-05-17  浏览次数:20823 次

关于数据库连接的问题 ,求大神给解答
我用.net3.5 做C# WINFORM,数据库是SQL2005

SqlConnection conn = new SqlConnection("链接字符串");
conn.Open(); //打开之后我去数据库的活动监视器看,看到多了一个进程是我刚刚建立的连接
conn.Close();  //问题出在这里,我执行了关闭,但是那个进程却没有结束,
//最后我点右上角X把程序关闭,数据库才结束这个进程。


然后我有这样写

qlConnection conn = new SqlConnection("链接字符串");
conn.Open(); 
qlConnection conn1 = new SqlConnection("链接字符串");
conn1.Open();  //去SQL2005进程看就多了两条,一共2个进程了,
//但是执行close()这两个进程一个也没有关闭



上面是第一个问题,想不明白求解答
----------------------------------

------解决方案--------------------
前边的问题,请了解连接池的机制先。


引用:
还有个问题上面没写完,

SqlConnection conn = new SqlConnection("链接字符串");
SqlCommond cmd = SqlCommond cmd("SQL语句",conn);
Adpter ap = new Adpter(cmd);
DataTable dt = new DataTable();
ap.fill(dt);  //问题是我这段里并没有打开CONN.OPEN,为什么结果dt里有数据呢,按说应该没



http://bbs.csdn.net/topics/390535249?page=1#post-395197282
------解决方案--------------------
Quote: 引用:

还有个问题上面没写完,

SqlConnection conn = new SqlConnection("链接字符串");
SqlCommond cmd = SqlCommond cmd("SQL语句",conn);
Adpter ap = new Adpter(cmd);
DataTable dt = new DataTable();
ap.fill(dt);  //问题是我这段里并没有打开CONN.OPEN,为什么结果dt里有数据呢,按说应该没

[/quote如果调用SqlDataAdapter的Fill方法,并且其SelectCommand属性的SqlConnection是关闭状态,则SqlDataAdapter会自动打开它,然后提交查询,获取结果,最后关闭连接。如果在调用Fill方法前,SqlConnection是打开的,则查询执行完毕后,SqlConnection还将是打开的,也就是说SqlDataAdapter会保证SqlConnection的状态恢复到原来的情形。