| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1964 人关注过本帖
标题:数据库连接应该如何关闭的问题
只看楼主 加入收藏
rohalloway
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:97
专家分:405
注 册:2018-9-28
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:4 
数据库连接应该如何关闭的问题
程序代码:
class sql
{
public:
    sql();
    ~sql();
private:
    void OpenDatabase();
};

sql::sql() {}

sql::~sql() {}

void sql::OpenDatabase()
{
    SqlConnection conn = new SqlConnection(@"user id=sa;password=****;initial catalog=*****;data source=****");
    conn.Open();
}


请问当我在类的外部调用OpenDatabase()后,应该如何关闭数据库连接?

我不知道在什么时候以及如何调用conn.Close();

新手小白,请指教,谢谢
搜索更多相关主题的帖子: 数据库连接 关闭 sql conn 调用 
2018-10-23 20:50
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
收藏
得分:0 
应该在构造函数处直接连接或者像你这样提供一个专门负责连接的函数
析构函数处关闭连接
为了以防万一
提供一个对外的借口, 让用户自己关闭
析构函数判断一下, 如果没关闭才轮到析构函数关闭
再出现异常就不再是你的事情了
2018-10-23 21:51
rohalloway
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:97
专家分:405
注 册:2018-9-28
收藏
得分:0 
以下是引用Jonny0201在2018-10-23 21:51:46的发言:

应该在构造函数处直接连接或者像你这样提供一个专门负责连接的函数
析构函数处关闭连接
为了以防万一
提供一个对外的借口, 让用户自己关闭
析构函数判断一下, 如果没关闭才轮到析构函数关闭
再出现异常就不再是你的事情了


程序代码:
class sql
{
public:
    sql();
    ~sql();
private:
    void OpenDatabase();
    SqlConnection conn;
};

sql::sql() {}

sql::~sql() 
{
    if(conn.Open())
        conn.close();
}

void sql::OpenDatabase()
{
    conn = new SqlConnection(@"user id=sa;password=****;initial catalog=*****;data source=****");
    conn.Open();
}


您说的利用析构函数来关闭是这个意思吗?

另外,如果不使用类成员函数连接数据库,改用普通的函数连接数据时,conn声明为全局的就可以,我这样理解对吗?

谢谢!
2018-10-23 23:27
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
收藏
得分:20 
程序代码:
class sql
{
public:
    sql();
    ~sql();
    void OpenDatabase();
    void CloseDatabase() {
        if(this->conn.Open()) {
            conn.Close();
        }
private:
    SqlConnection conn;
};

sql::sql() {}

sql::~sql() 
{
    this->CloseDatabase();
}

void sql::OpenDatabase()
{
    conn = new SqlConnection(@"user id=sa;password=****;initial catalog=*****;data source=****");
    conn.Open();
}
2018-10-24 13:06
rohalloway
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:97
专家分:405
注 册:2018-9-28
收藏
得分:0 
明白了,非常感谢!
2018-10-25 01:40
快速回复:数据库连接应该如何关闭的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017871 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved