【问题标题】:How to check SQL Server is availability using C# and ASP.NET 4.0如何使用 C# 和 ASP.NET 4.0 检查 SQL Server 的可用性
【发布时间】:2017-12-04 07:34:34
【问题描述】:

我有客户端服务器架构。我有服务器和 4 台客户端机器,每个客户端都有连接局域网的 SQL Server。

我需要检查4个客户端数据库是否连接。

在我的 web.config 中

<connectionStrings>
    <add name="DBConnection" 
         connectionString="Data Source=192.168.1.90,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;" 
         providerName="System.Data.SqlClient" />
    <add name="DBConnection1" 
         connectionString="Data Source=192.168.1.91,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;Connection Timeout=5" 
         providerName="System.Data.SqlClient" />
    <add name="DBConnection2" 
         connectionString="Data Source=192.168.1.92,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;Connection Timeout=5" 
         providerName="System.Data.SqlClient" />
    <add name="DBConnection3" 
         connectionString="Data Source=192.168.1.93,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;Connection Timeout=5" 
         providerName="System.Data.SqlClient" />
    <add name="DBConnection4" 
         connectionString="Data Source=192.168.1.94,1433;Initial Catalog=POS;Integrated Security=False;User Id=sa;Password=sql2008;Connection Timeout=5" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

在我的 ASP.NET 代码中,我在 for 循环中使用了 ajax 方法

   <script type="text/javascript">
     function CheckDB() {

         for (var i = 1; i <= 4); i++) {
             var DBConnection = "DBConnection" + i;
             $.ajax({
                 type: 'POST',
                 url: 'StockIntegration.aspx/CheckDB',
                 data: "{DBConnection:" + JSON.stringify(DBConnection) + "}",
                 contentType: 'application/json; charset=utf-8',
                 dataType: 'json',
                 success: function (data) {

                     if (data.d == null || data.d == undefined) {

                     } else {

                         if (data.d == "1") {
                             $('[id$=Label1]').append("CONNECTED SYSTEM: " + DBConnection + "<br/>");
                         } else {
                             $('[id$=Label2]').append("DISCONNECTED SYSTEM: " + DBConnection + "<br/>");
                         }
                     }
                 },
                 error: function ()
                 { alert('there is some error'); }
             });
         }
     }
 </script>

在我的网络服务中

[System.Web.Services.WebMethod]
public static String CheckDB(String DBConnection)
{
        try
        {
            SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[DBConnection].ConnectionString);
            SqlCommand cmd = new SqlCommand("select 1", con);
            con.Open();
            var rowCount = cmd.ExecuteScalar();
            con.Close();
            return rowCount.ToString();
        }
        catch
        {
            return "Fasle";
        }
}

如果任何 SQL Server 实例断开连接,循环将关闭。如何做到这一点?我需要显示已连接和已断开连接的 SQL Server 实例列表。

【问题讨论】:

    标签: c# asp.net sql-server ajax


    【解决方案1】:

    这是您的前端客户端 JavaScript 代码。但这只是成功的一部分:

    success: function (data) {
                     if (data == null || !data) {
                          $('[id$=Label2]').append("DISCONNECTED SYSTEM: " + DBConnection + "<br/>");
                     } else {                   
                          $('[id$=Label1]').append("CONNECTED SYSTEM: " + DBConnection + "<br/>");
                     }
                 },
    

    这是你的 c# 后端代码。

    [System.Web.Services.WebMethod]
    public static bool CheckDB(String DBConnection)
    {
        try
        {
            using(var con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[DBConnection].ConnectionString);
            {
                con.Open();
                return true;
            }
        }
        catch
        {
            return false;
        }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 2014-03-19
      • 1970-01-01
      • 2012-10-31
      相关资源
      最近更新 更多