Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ AppendKeyValuePairBuilder()

static void System.Data.Common.DbConnectionOptions.AppendKeyValuePairBuilder ( StringBuilder builder,
string keyName,
string keyValue,
bool useOdbcRules )
inlinestaticpackage

Definition at line 62 of file DbConnectionOptions.cs.

63 {
64 ADP.CheckArgumentNull(builder, "builder");
65 ADP.CheckArgumentLength(keyName, "keyName");
66 if (keyName == null || !s_connectionStringValidKeyRegex.IsMatch(keyName))
67 {
68 throw ADP.InvalidKeyname(keyName);
69 }
70 if (keyValue != null && !IsValueValidInternal(keyValue))
71 {
72 throw ADP.InvalidValue(keyName);
73 }
74 if (0 < builder.Length && ';' != builder[builder.Length - 1])
75 {
76 builder.Append(';');
77 }
78 if (useOdbcRules)
79 {
80 builder.Append(keyName);
81 }
82 else
83 {
84 builder.Append(keyName.Replace("=", "=="));
85 }
86 builder.Append('=');
87 if (keyValue == null)
88 {
89 return;
90 }
91 if (useOdbcRules)
92 {
93 if (0 < keyValue.Length && ('{' == keyValue[0] || 0 <= keyValue.IndexOf(';') || string.Equals("Driver", keyName, StringComparison.OrdinalIgnoreCase)) && !s_connectionStringQuoteOdbcValueRegex.IsMatch(keyValue))
94 {
95 builder.Append('{').Append(keyValue.Replace("}", "}}")).Append('}');
96 }
97 else
98 {
99 builder.Append(keyValue);
100 }
101 }
103 {
104 builder.Append(keyValue);
105 }
106 else if (keyValue.Contains('"') && !keyValue.Contains('\''))
107 {
108 builder.Append('\'');
109 builder.Append(keyValue);
110 builder.Append('\'');
111 }
112 else
113 {
114 builder.Append('"');
115 builder.Append(keyValue.Replace("\"", "\"\""));
116 builder.Append('"');
117 }
118 }
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
static bool IsValueValidInternal(string keyvalue)
static readonly Regex s_connectionStringQuoteValueRegex
static readonly Regex s_connectionStringValidKeyRegex
static readonly Regex s_connectionStringQuoteOdbcValueRegex

References System.Data.Common.ADP.CheckArgumentLength(), System.Data.Common.ADP.CheckArgumentNull(), System.Collections.Generic.Dictionary< TKey, TValue >.Contains(), System.Data.Common.ADP.InvalidKeyname(), System.Data.Common.ADP.InvalidValue(), System.Data.Common.DbConnectionOptions.IsValueValidInternal(), System.Data.Common.DbConnectionOptions.s_connectionStringQuoteOdbcValueRegex, System.Data.Common.DbConnectionOptions.s_connectionStringQuoteValueRegex, and System.Data.Common.DbConnectionOptions.s_connectionStringValidKeyRegex.

Referenced by System.Data.Common.DbConnectionStringBuilder.AppendKeyValuePair(), and System.Data.Common.DbConnectionStringBuilder.AppendKeyValuePair().