diff --git a/minisqlquery-master/src/MiniSqlQuery/PlugIns/ConnectionStringsManager/GenericConnectionStringBuilder.cs b/minisqlquery-master/src/MiniSqlQuery/PlugIns/ConnectionStringsManager/GenericConnectionStringBuilder.cs
new file mode 100644
index 0000000..5fa0aca
--- /dev/null
+++ b/minisqlquery-master/src/MiniSqlQuery/PlugIns/ConnectionStringsManager/GenericConnectionStringBuilder.cs
@@ -0,0 +1,79 @@
+#region License
+
+// Copyright 2005-2019 Paul Kohler (https://github.com/paulkohler/minisqlquery). All rights reserved.
+// This source code is made available under the terms of the GNU Lesser General Public License v3.0
+// https://github.com/paulkohler/minisqlquery/blob/master/LICENSE
+#endregion
+
+using System.Collections;
+using System.ComponentModel;
+using System.Data.Common;
+using System.Reflection;
+
+namespace MiniSqlQuery.PlugIns.ConnectionStringsManager
+{
+ /// <summary>The generic connection string builder.</summary>
+ [DefaultMember("Item"), DefaultProperty("ConnectionString")]
+ public class GenericConnectionStringBuilder : DbConnectionStringBuilder
+ {
+ /// <summary>The _properties.</summary>
+ private Hashtable _properties;
+
+ /// <summary>Initializes a new instance of the <see cref="GenericConnectionStringBuilder"/> class.</summary>
+ public GenericConnectionStringBuilder()
+ {
+ Initialize(null);
+ }
+
+ /// <summary>Initializes a new instance of the <see cref="GenericConnectionStringBuilder"/> class.</summary>
+ /// <param name="connectionString">The connection string.</param>
+ public GenericConnectionStringBuilder(string connectionString)
+ {
+ Initialize(connectionString);
+ }
+
+ /// <summary>The try get value.</summary>
+ /// <param name="keyword">The keyword.</param>
+ /// <param name="value">The value.</param>
+ /// <returns>The try get value.</returns>
+ public override bool TryGetValue(string keyword, out object value)
+ {
+ bool success = base.TryGetValue(keyword, out value);
+ if (_properties.ContainsKey(keyword))
+ {
+ PropertyDescriptor descriptor = _properties[keyword] as PropertyDescriptor;
+ if (descriptor == null)
+ {
+ return success;
+ }
+
+ if (success)
+ {
+ value = TypeDescriptor.GetConverter(descriptor.PropertyType).ConvertFrom(value);
+ return success;
+ }
+
+ DefaultValueAttribute attribute = descriptor.Attributes[typeof(DefaultValueAttribute)] as DefaultValueAttribute;
+ if (attribute != null)
+ {
+ value = attribute.Value;
+ success = true;
+ }
+ }
+
+ return success;
+ }
+
+ /// <summary>The initialize.</summary>
+ /// <param name="cnnString">The cnn string.</param>
+ private void Initialize(string cnnString)
+ {
+ _properties = new Hashtable();
+ this.GetProperties(_properties);
+ if (!string.IsNullOrEmpty(cnnString))
+ {
+ ConnectionString = cnnString;
+ }
+ }
+ }
+}
\ No newline at end of file