How to Find All SQL Server Instance Running in Local Network c#

来源:互联网 发布:web域名注册免费 编辑:程序博客网 时间:2024/06/05 23:41

Create new class its name to GetInstance and write this below code on GetInstance class.

using System.Data.Sql;
using System.Collections;
using System.Data;

namespace SqlServer
{
    public class GetInstance
    {
        public static ArrayList GetInstanceName()
        {
            try
            {
                SqlServerList SqlSL = new SqlServerList();
                SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
                DataTable table = instance.GetDataSources();
                ArrayList list = new ArrayList();
                foreach (DataRow row in table.Rows)
                {
                    SqlSL = new SqlServerList();
                    SqlSL.ServerName = row[0].ToString();
                    SqlSL.InstanceName = row[1].ToString();
                    SqlSL.IsClustered = row[2].ToString();
                    SqlSL.Version = row[3].ToString();
                    list.Add(SqlSL);
                }
                return list;
            }
            catch
            {
                return null;
            }
        }
    }
}

Create new class its name to SqlServerList and write this below code on SqlServerList class.

using System;

namespace SqlServer
{
    [Serializable]
    class SqlServerList : IComparable, ICloneable
    {
        public SqlServerList()
        {
            ServerName = string.Empty;
            InstanceName = string.Empty;
            IsClustered = string .Empty ;
            Version = string.Empty;
        }

        #region ICloneable Members

        public object Clone()
        {
            try
            {
                if (this == null)
                {
                    return null;
                }
                SqlServerList SqlSL = new SqlServerList { ServerName = ServerName, InstanceName = InstanceName, IsClustered = IsClustered, Version = Version };
                return SqlSL;
            }
            catch
            {
                throw new NotImplementedException();
            }
        }

        #endregion

        #region IComparable Members

        public int CompareTo(object obj)
        {
            try
            {
                if (!(obj is SqlServerList))
                {
                    throw new Exception("obj is not an instance of SqlServerList");
                }
                if (this == null)
                {
                    return -1;
                }
                return ServerName.CompareTo((obj as SqlServerList).ServerName);
            }
            catch
            {
                throw new NotImplementedException();
            }
        }

        #endregion

        public string ServerName { get; set; }
        public string InstanceName { get; set; }
        public string IsClustered { get; set; }
        public string Version { get; set; }
    }
}

use this class :

 

System.Collections.ArrayList AllInstanceSqlserver = SqlServer.GetInstance.GetInstanceName();
原创粉丝点击