在项目中经常会遇到要判断数据库连接是否成功的情况。如果写个查询语句去判断,则数据库连接出错的时候会花费很长的时间才能返回错误信息。因此建议先使用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();
}
}