通过建立Socket连接来快速判断数据库连接是否正确
2011-11-03 17:51
309 查看
在项目中经常会遇到要判断数据库连接是否成功的情况。如果写个查询语句去判断,则数据库连接出错的时候会花费很长的时间才能返回错误信息。因此建议先使用Socket去连接数据库服务器的IP及其上的数据库端口。默认情况下数据库服务器的端口为1433.判断数据库连接的代码如下:
/// <summary>
/// 测试数据库连接是否成功
/// </summary>
/// <param name="host">数据库主机名</param>
/// <param name="port">端口</param>
/// <returns></returns>
public static bool TestConnection(string strHost,int port)
{
var client = new TcpClient();
try
{
string host = strHost;
var ar = client.BeginConnect(host, port, null, null);
ar.AsyncWaitHandle.WaitOne(500);
return client.Connected;
}
catch
{
return false;
}
finally
{
client.Close();
}
}
上面的代码只是判断了数据库服务器的端口和IP这条路是否是通的。如果这条路都走不通,那就直接可以报错提示数据库服务器数据源或者是端口错误。
如果上面代码通过了。则可以再附加打开数据库的连接来判断数据库的连接字符串是否正确,以排除数据库连接字符串的错误。
代码如下:
public static bool TestConnection(string ConnectionString)
{
bool result = true;
SqlConnection m_myConnection = new SqlConnection(ConnectionString);
try
{
m_myConnection.Open();
return result;
}
catch
{
result = false;
return result;
}
finally
{
m_myConnection.Close();
}
}
/// <summary>
/// 测试数据库连接是否成功
/// </summary>
/// <param name="host">数据库主机名</param>
/// <param name="port">端口</param>
/// <returns></returns>
public static bool TestConnection(string strHost,int port)
{
var client = new TcpClient();
try
{
string host = strHost;
var ar = client.BeginConnect(host, port, null, null);
ar.AsyncWaitHandle.WaitOne(500);
return client.Connected;
}
catch
{
return false;
}
finally
{
client.Close();
}
}
上面的代码只是判断了数据库服务器的端口和IP这条路是否是通的。如果这条路都走不通,那就直接可以报错提示数据库服务器数据源或者是端口错误。
如果上面代码通过了。则可以再附加打开数据库的连接来判断数据库的连接字符串是否正确,以排除数据库连接字符串的错误。
代码如下:
public static bool TestConnection(string ConnectionString)
{
bool result = true;
SqlConnection m_myConnection = new SqlConnection(ConnectionString);
try
{
m_myConnection.Open();
return result;
}
catch
{
result = false;
return result;
}
finally
{
m_myConnection.Close();
}
}
相关文章推荐
- 通过建立Socket连接来快速判断数据库连接是否正确
- C#使用Socket快速判断数据库连接是否正常的方法
- 用Socket快速判断数据库连接
- 用Socket快速判断数据库连接
- c#通过socket判断服务器连接是否正常
- 连接数据库与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误,请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
- 正确判断socket是否处于连接状态
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL
- android 通过局域网udp广播自动建立socket连接
- Android 通过局域网udp广播自动建立socket连接
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管
- c#通过Windows API 判断网络是否连接
- java中判断socket网络远端是否断开连接
- JAVA--第十周作业编写之一个Teacher类负责给出算术题目,随机给出两个整数并进行运算,并判断回答者的答案是否正确;编写一个GUI类ComputerFrame,回答者可以通过GUI看到题目并给出
- 通过查询数据库中的sysobjects来判断数据库中是否已有该表
- java中判断socket网络远端是否断开连接
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法訪问server。请验证实例名称是否正确而且 SQL Server 已配置为同意远程连接。
- 如何判断一个SOCKET连接是否已经断开
- C#怎么判断一个Socket是否连接
- java中判断socket服务器端是否断开连接