Beispiel #1
0
        /// <summary>
        /// 判断当前数据库的配置是否能正常连接上
        /// </summary>
        /// <returns></returns>
        public bool TryConnect(out string connStr)
        {
            connStr = string.Empty;
            //判断数据库名称是否有选择
            if (string.IsNullOrEmpty(cmbDataBase.Text))
            {
                return(false);
            }
            //判断服务器是否有设定
            if (string.IsNullOrEmpty(cmbsvr.Text))
            {
                return(false);
            }
            //判断验证类型是否有设定
            if (string.IsNullOrEmpty(cmbValidType.Text))
            {
                return(false);
            }
            EnConnectionType enType = EnConnectionType.None;

            switch (cmbValidType.SelectedIndex)
            {
            case 0:
                enType = EnConnectionType.DataBaseAccount;    //SQL Server身份认证
                break;

            case 1:
                enType = EnConnectionType.Integrated;    //集成身份认证
                break;
            }
            if (enType == EnConnectionType.DataBaseAccount)//若为SQL论证但无用户ID则返回错误
            {
                if (string.IsNullOrEmpty(cmbuid.Text))
                {
                    return(false);
                }
            }

            SQLConnStringConfig connStrCfg = new SQLConnStringConfig();

            connStrCfg.ServerIP       = cmbsvr.Text;
            connStrCfg.DataBaseName   = cmbDataBase.Text;
            connStrCfg.ConnectionType = enType;
            connStrCfg.UserName       = cmbuid.Text;
            connStrCfg.PassWord       = txtpwd.Text;
            bool bOk = connStrCfg.TryConnect();

            if (bOk)
            {
                connStr = connStrCfg.ConnectionString;
            }
            return(bOk);
        }
Beispiel #2
0
        /// <summary>
        /// 连接至指定服务器以获取数据库名称列表
        /// </summary>
        /// <param name="serverName">服务器名</param>
        /// <param name="enType">论证方式</param>
        /// <param name="uid">用户ID(仅当认证方式为SQL帐户时)</param>
        /// <param name="pwd">用户密码(仅当认证方式为SQL帐户时)</param>
        /// <param name="lstDBName">成功获取到的数据库名称列表</param>
        /// <returns>成功获取返回true,否则为false</returns>
        private bool GetCurrentServerDataBaseList(
            string serverName,
            EnConnectionType enType,
            string uid,
            string pwd,
            out List <string> lstDBName
            )
        {
            lstDBName = null;
            //未读取过当前选择的实例下的数据库列表
            SQLServerMeta       meta       = new SQLServerMeta();
            SQLConnStringConfig connStrCfg = new SQLConnStringConfig();

            connStrCfg.ServerIP = serverName;//服务器名称/IP
            //connStrCfg.DataBaseName = "master";
            switch (enType)
            {
            case EnConnectionType.Integrated:    //集成身份认证
                connStrCfg.ConnectionType = EnConnectionType.Integrated;
                break;

            case EnConnectionType.DataBaseAccount: //SQL Server 认证
                connStrCfg.ConnectionType = EnConnectionType.DataBaseAccount;
                connStrCfg.UserName       = uid;   //用户名
                connStrCfg.PassWord       = pwd;   //密码
                break;
            }
            //尝试连接至服务器
            if (!connStrCfg.TryConnect())
            {
                return(false);//无法连接至服务器
            }
            meta.ConnStrCfg = connStrCfg;
            lstDBName       = meta.GetAllDataBaseName();
            //无法枚举到任何数据库
            if (null == lstDBName || lstDBName.Count < 1)
            {
                return(false);
            }
            return(true);
        }
        /// <summary>
        /// 判断当前数据库的配置是否能正常连接上
        /// </summary>
        /// <returns></returns>
        public bool TryConnect(out string connStr)
        {
            connStr = string.Empty;
            //判断数据库名称是否有选择
            if (string.IsNullOrEmpty(cmbDataBase.Text))
                return false;
            //判断服务器是否有设定
            if (string.IsNullOrEmpty(cmbsvr.Text))
                return false;
            //判断验证类型是否有设定
            if (string.IsNullOrEmpty(cmbValidType.Text))
                return false;
            EnConnectionType enType = EnConnectionType.None;
            switch (cmbValidType.SelectedIndex)
            {
                case 0:
                    enType = EnConnectionType.DataBaseAccount;//SQL Server身份认证
                    break;
                case 1:
                    enType = EnConnectionType.Integrated;//集成身份认证
                    break;
            }
            if (enType == EnConnectionType.DataBaseAccount)//若为SQL论证但无用户ID则返回错误
                if (string.IsNullOrEmpty(cmbuid.Text)) return false;

            SQLConnStringConfig connStrCfg = new SQLConnStringConfig();
            connStrCfg.ServerIP = cmbsvr.Text;
            connStrCfg.DataBaseName = cmbDataBase.Text;
            connStrCfg.ConnectionType = enType;
            connStrCfg.UserName = cmbuid.Text;
            connStrCfg.PassWord = txtpwd.Text;
            bool bOk = connStrCfg.TryConnect();
            if (bOk) connStr = connStrCfg.ConnectionString;
            return bOk;
        }
        /// <summary>
        /// 连接至指定服务器以获取数据库名称列表
        /// </summary>
        /// <param name="serverName">服务器名</param>
        /// <param name="enType">论证方式</param>
        /// <param name="uid">用户ID(仅当认证方式为SQL帐户时)</param>
        /// <param name="pwd">用户密码(仅当认证方式为SQL帐户时)</param>
        /// <param name="lstDBName">成功获取到的数据库名称列表</param>
        /// <returns>成功获取返回true,否则为false</returns>
        private bool GetCurrentServerDataBaseList(
                                                    string serverName,
                                                    EnConnectionType enType,
                                                    string uid,
                                                    string pwd,
                                                    out List<string> lstDBName
                                                 )
        {
            lstDBName = null;
            //未读取过当前选择的实例下的数据库列表
            SQLServerMeta meta = new SQLServerMeta();
            SQLConnStringConfig connStrCfg = new SQLConnStringConfig();
            connStrCfg.ServerIP = serverName;//服务器名称/IP
            //connStrCfg.DataBaseName = "master";
            switch (enType)
            {
                case EnConnectionType.Integrated://集成身份认证
                    connStrCfg.ConnectionType = EnConnectionType.Integrated;
                    break;
                case EnConnectionType.DataBaseAccount://SQL Server 认证
                    connStrCfg.ConnectionType = EnConnectionType.DataBaseAccount;
                    connStrCfg.UserName = uid;//用户名
                    connStrCfg.PassWord = pwd;//密码
                    break;
            }
            //尝试连接至服务器
            if (!connStrCfg.TryConnect())
                return false;//无法连接至服务器

            meta.ConnStrCfg = connStrCfg;
            lstDBName = meta.GetAllDataBaseName();
            //无法枚举到任何数据库
            if (null == lstDBName || lstDBName.Count < 1)
                return false;
            return true;
        }