서버 목록 및 데이터베이스 목록 가져오기 VS Add Connection 기능

2717 단어 Connection
VS에 Add Connection 기능이 있는 인터페이스로 LAN 내의 서버를 검색할 수 있으며 서버에 접속하면 사용자 이름과 비밀번호에 따라 데이터베이스 목록을 얻을 수 있습니다.복잡해 보이는 기능은 사실 매우 간단하다.
1. 서버 목록을 가져옵니다.
VS에는 SqlDataSourceEnumerator 클래스가 제공되며 이름은 System입니다.Data.Sql, GetDataSource () 메서드를 직접 호출하면 서버 목록의 DataTable을 얻을 수 있습니다.
코드:
        private void GetServerName()
        {
            List<string> serverList = new List<string>();

            DataTable dataTable = SqlDataSourceEnumerator.Instance.GetDataSources();

            DataRow[] rows = dataTable.Select("", "ServerName,InstanceName Asc");

            foreach (DataRow row in rows)
            {
                string server = row["ServerName"].ToString();
                if (string.IsNullOrEmpty(row["InstanceName"].ToString()) == false)
                {
                    server = server + "\\" + row["InstanceName"].ToString();
                }

                serverList.Add(server);
            }

            this.SetComboBoxItemSource(cbServer, serverList);
        }

2. 데이터베이스의 모든 데이터베이스 목록을 가져옵니다.
이것은 비교적 간단합니다. 서버에 연결된 후master 데이터베이스에 연결하여 시스템 데이터베이스를 조회하면 됩니다.
코드:
        private void GetDataBasesName()
        {
            List<string> dataBaseList = new List<string>();

          // 、 , 。
            string server = this.GetControlText(this.cbServer);
            string uid = this.GetControlText(this.txtUid);
            string pwd = this.GetControlText(this.pbPwd);

            string connString = string.Format("server={0};database=master;uid={1};pwd={2}", server, uid, pwd);
            string sql = "select name from SYSDATABASES order by name";

            SqlConnection conn = new SqlConnection(connString);
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    dataBaseList.Add(reader[0].ToString());
                }
            }
            catch (Exception)
            {
                //throw;
            }
            finally
            {
                conn.Close();
            }

            this.SetComboBoxItemSource(this.cbDataBase, dataBaseList);
        }

만약 부당한 점이 있으면 여러분의 많은 지도를 바랍니다.

좋은 웹페이지 즐겨찾기