//----------Members----------- #region 连接字符串 #if lang_zh /// <summary> /// 设置连接字符串 /// </summary> /// <param name="m_connectionString">连接字符串</param> /// <param name="m_ConnectionAliasName">连接别名;如果没起别名,默认为DEFAULT,会以此作为默认的连接字符串</param> #else /// <summary> /// Set the connection string /// </summary> /// <param name="m_connectionString">connection string</param> /// <param name="m_ConnectionAliasName">the Alias Name of Connection (if not pass name,it will use the DEFAULT name instead.)</param> #endif public static void SetConnection(string m_connectionString, string m_ConnectionAliasName = ALIAS_NAME_DEFAULT) { //检查连接字符串 SqlConnectionStringBuilder builder = null; try { builder = new SqlConnectionStringBuilder(m_connectionString); } catch (Exception ex) { #if lang_zh const string errMsg = "连接字符串有错误。"; #else const string errMsg = "Connection String is invalid."; #endif throw new ArgumentException(errMsg, "m_connectionString", ex); } //##异步的 /* 启用异步SQL支持的时候,连接字符串必须包含以下属性。 * https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnectionstringbuilder.asynchronousprocessing(v=vs.110).aspx * * 标记为“允许异步”。即: * 1.没有标记时,及时使用Command的Async方法,依然是同步操作; * 2.有标记时,如果继续使用Command的同步方法,仍然能用于同步操作。 */ #if NET_STD #else builder.AsynchronousProcessing = true; #endif string finalConnectionString = builder.ToString(); //检查连接是否可用,同时获取SqlServer的产品版本号 string version; try { version = AsyncSQLHelper.ExecuteScalar(finalConnectionString, CommandType.Text, "SELECT SERVERPROPERTY('ProductVersion')") as String; } catch (Exception ex) { #if lang_zh const string errMsg = "此连接字符串无法正常工作。"; #else const string errMsg = "This Connection String was unable to work properly."; #endif throw new ArgumentException(errMsg, "m_connectionString", ex); } //记录结果 var item = new ConnectionRepositoryItem { ConnectionString = finalConnectionString, ServerProductVersion = new Version(version) }; ConnectionRepository.SetRepositoryItem(m_ConnectionAliasName, item); }
//---------Control---------- #region 添加资源项 #if lang_zh /// <summary> /// 添加资源项 /// </summary> /// <param name="ConnectionAliasName">连接别名</param> /// <param name="item">资源项</param> /// <returns>成功与否</returns> #else /// <summary> /// Set the target Item /// </summary> /// <param name="ConnectionAliasName">the Alias Name of Connection</param> /// <param name="item">the item</param> /// <returns>successfully or not</returns> #endif internal static bool SetRepositoryItem(string ConnectionAliasName, ConnectionRepositoryItem item) { //检查 if (item == null) { return(false); } //设置值 repository[ConnectionAliasName] = item; return(true); }