C#获取局域网内所有的SQL Server服务器名

通常这种获取都会花费一点时间,为了不影响UI刷新,建议使用后台线程实现,由于很简单,直接上代码吧!

        /// <summary>
        /// 后台前程启动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            //获取SQL Server实例集合
            e.Result = AvailableSqlServerInstances.ServerInstances;
        }

        /// <summary>
        /// 后台线程结束
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Result != null)
            {
                //cbServer为“服务器名”下拉列表
                lock (cbServer)
                {
                    string txt = cbServer.Text;
                    this.cbServer.DataSource = e.Result;
                    if (txt.Length > 0)
                    {
                        cbServer.Text = txt;
                        cbServer.SelectionStart = txt.Length;
                    }
                }
            }
        }


开发过程中比较常用,希望能对有需要的人有一点点帮助。

posted @ 2013-06-26 17:31  <*茉莉清茶*>  阅读(345)  评论(0)    收藏  举报