zoukankan      html  css  js  c++  java
  • 通过建立Socket连接来快速判断数据库连接是否正确

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

              }           

            }







  • 相关阅读:
    内存映射的原理
    Intel 面试(就不该报外企,英语是硬伤)
    基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程
    pdflush机制
    百度面试
    同步IO和异步IO的区别
    阿里面试
    linux内核学习之四:进程切换简述
    static成员函数不能调用non-static成员函数
    C/C++函数调用方式
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2236174.html
Copyright © 2011-2022 走看看