C#与SQL Server的持久连接

时间:2013-02-25 13:38:22

标签: c# sql-server database

我正在编写C#TCP服务。在此服务中,客户端连接到我们的TCP服务器 获取或写入一些数据。

问题:

早上我们重启数据库服务器,服务失去了连接 数据库。当下一个请求进入我们的系统时,就不再有数据库连接了。

有人知道我能做什么吗?

重启后如何保留或重新连接数据库服务器?

1 个答案:

答案 0 :(得分:2)

在您的情况下,我认为最好不要在整个服务生命周期内维护一个开放的SqlConnection到sql数据库。

相反,实例化一个SqlConnection对象,打开它,处理您的查询,然后关闭它:它将使用SQL服务器的内部connection pooling机制。

例如,您可以将每个查询括在打开和关闭连接的代码块中:

using(var cn = new SqlConnection(csString))
{
    cn.Open();

    ... // your query

    cn.Close();
}

通过这种方式,当数据库每晚重新启动时,它对您来说是透明的。