/// <summary> /// Converts ODBC connection string to the SQL Client (.NET). /// </summary> public static string OdbcToSqlClient(this string odbcString) { if (string.IsNullOrEmpty(odbcString)) { return null; } try { var odbc = new OdbcConnectionStringBuilder(odbcString); var server= odbc.GetValue(OdbcServerKey); var database = odbc.GetValue(OdbcDatabaseKey); if (!string.IsNullOrWhiteSpace(server) && !string.IsNullOrWhiteSpace(database)) { var sql = new SqlConnectionStringBuilder(); sql.DataSource = server; sql.InitialCatalog = database; if (odbc.ContainsKey(OdbcUidKey)) { //Standard Connection sql.IntegratedSecurity = false; sql.UserID = odbc.GetValue(OdbcUidKey); sql.Password = odbc.GetValue(OdbcPasswordKey); } else { //Trusted Connection sql.IntegratedSecurity = true; } return sql.ConnectionString; } } catch(ArgumentException) { } return null; }
public void Add () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); builder.Add ("driverid", "420"); builder.Add ("driverid", "560"); builder.Add ("DriverID", "840"); Assert.AreEqual ("840", builder ["driverId"], "#A1"); Assert.IsTrue (builder.ContainsKey ("driverId"), "#A2"); builder.Add ("Driver", "OdbcDriver"); Assert.AreEqual ("OdbcDriver", builder.Driver, "#B1"); Assert.AreEqual ("OdbcDriver", builder ["Driver"], "#B2"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#B3"); builder.Add ("Driver", "{OdbcDriver"); Assert.AreEqual ("{OdbcDriver", builder.Driver, "#C1"); Assert.AreEqual ("{OdbcDriver", builder ["Driver"], "#C2"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#C3"); builder.Add ("Dsn", "MyDsn"); Assert.AreEqual ("MyDsn", builder.Dsn, "#D1"); Assert.AreEqual ("MyDsn", builder ["Dsn"], "#D2"); Assert.IsTrue (builder.ContainsKey ("Dsn"), "#D3"); builder.Add ("dsN", "MyDsn2"); Assert.AreEqual ("MyDsn2", builder.Dsn, "#E1"); Assert.AreEqual ("MyDsn2", builder ["Dsn"], "#E2"); Assert.IsTrue (builder.ContainsKey ("Dsn"), "#E3"); }
public void Remove () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); Assert.IsFalse (builder.Remove ("Dsn"), "#A1"); Assert.IsFalse (builder.Remove ("Driver"), "#A2"); builder.Add ("DriverID", "790"); builder ["DefaultDir"] = "C:\\"; Assert.IsTrue (builder.Remove ("DriverID"), "#B1"); Assert.IsFalse (builder.ContainsKey ("DriverID"), "#B2"); Assert.IsFalse (builder.Remove ("DriverID"), "#B3"); Assert.IsFalse (builder.ContainsKey ("DriverID"), "#B4"); Assert.IsTrue (builder.Remove ("defaulTdIr"), "#B5"); Assert.IsFalse (builder.ContainsKey ("DefaultDir"), "#B6"); Assert.IsFalse (builder.Remove ("defaulTdIr"), "#B7"); Assert.IsFalse (builder.Remove ("userid"), "#B8"); Assert.IsFalse (builder.Remove (string.Empty), "#B9"); Assert.IsFalse (builder.Remove ("\r"), "#B10"); Assert.IsFalse (builder.Remove ("a;"), "#B11"); builder.Dsn = "myDsn"; Assert.IsTrue (builder.Remove ("dSn"), "#C1"); Assert.IsTrue (builder.ContainsKey ("dSn"), "#C2"); Assert.IsTrue (builder.ContainsKey ("Dsn"), "#C3"); Assert.AreEqual (string.Empty, builder.Dsn, "#C4"); Assert.IsFalse (builder.Remove ("Dsn"), "#C5"); builder.Driver = "SQL Server"; Assert.IsTrue (builder.Remove ("driVer"), "#D1"); Assert.IsTrue (builder.ContainsKey ("driVer"), "#D2"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#D3"); Assert.AreEqual (string.Empty, builder.Driver, "#D4"); Assert.IsFalse (builder.Remove ("Driver"), "#D5"); builder ["Dsn"] = "myDsn"; Assert.IsTrue (builder.Remove ("Dsn"), "#E1"); Assert.IsTrue (builder.ContainsKey ("Dsn"), "#E2"); Assert.AreEqual (string.Empty, builder.Dsn, "#E3"); Assert.IsFalse (builder.Remove ("Dsn"), "#E4"); builder ["Driver"] = "SQL Server"; Assert.IsTrue (builder.Remove ("Driver"), "#F1"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#F2"); Assert.AreEqual (string.Empty, builder.Driver, "#F3"); Assert.IsFalse (builder.Remove ("Driver"), "#F4"); }
public void Dsn () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); Assert.IsTrue (builder.ContainsKey ("Dsn"), "#A1"); Assert.AreEqual (string.Empty, builder ["Dsn"], "#A2"); Assert.AreEqual (string.Empty, builder.Dsn, "#A3"); builder.Dsn = "myDsn"; Assert.AreEqual ("Dsn=myDsn", builder.ConnectionString, "#B1"); Assert.IsTrue (builder.ContainsKey ("Dsn"), "#B2"); Assert.AreEqual ("myDsn", builder ["Dsn"], "#B3"); Assert.AreEqual ("myDsn", builder.Dsn, "#B4"); builder.Clear (); builder ["Dsn"] = "myDsn"; Assert.AreEqual ("Dsn=myDsn", builder.ConnectionString, "#C1"); Assert.IsTrue (builder.ContainsKey ("Dsn"), "#C2"); Assert.AreEqual ("myDsn", builder ["Dsn"], "#C3"); Assert.AreEqual ("myDsn", builder.Dsn, "#C4"); }
public void Indexer_Dsn_Null () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); builder ["Dsn"] = null; Assert.AreEqual (string.Empty, builder.Dsn, "#A1"); Assert.AreEqual (string.Empty, builder ["Dsn"], "#A2"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#A3"); builder.Dsn = "X"; Assert.AreEqual ("X", builder.Dsn, "#B1"); Assert.AreEqual ("X", builder ["Dsn"], "#B2"); Assert.AreEqual ("X", builder ["dsN"], "#B3"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#B4"); Assert.IsTrue (builder.ContainsKey ("drivEr"), "#B5"); builder ["Dsn"] = null; Assert.AreEqual (string.Empty, builder.Dsn, "#C1"); Assert.AreEqual (string.Empty, builder ["Dsn"], "#C2"); builder ["Dsn"] = "A"; Assert.AreEqual ("A", builder.Dsn, "#D1"); Assert.AreEqual ("A", builder ["Dsn"], "#D2"); builder ["Dsn"] = null; Assert.AreEqual (string.Empty, builder.Dsn, "#E1"); Assert.AreEqual (string.Empty, builder ["Dsn"], "#E2"); }
public void Driver () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); Assert.IsTrue (builder.ContainsKey ("Driver"), "#A1"); Assert.AreEqual (string.Empty, builder ["Driver"], "#A2"); Assert.AreEqual (string.Empty, builder.Driver, "#A3"); builder.Driver = "SQL Server"; Assert.AreEqual ("Driver={SQL Server}", builder.ConnectionString, "#B1"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#B2"); Assert.AreEqual ("SQL Server", builder ["Driver"], "#B3"); Assert.AreEqual ("SQL Server", builder.Driver, "#B4"); builder.Clear (); builder.Driver = "{SQL Server"; Assert.AreEqual ("Driver={{SQL Server}", builder.ConnectionString, "#C1"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#C2"); Assert.AreEqual ("{SQL Server", builder ["Driver"], "#C3"); Assert.AreEqual ("{SQL Server", builder.Driver, "#C4"); builder.Clear (); builder.Driver = "{SQL Server}"; Assert.AreEqual ("Driver={SQL Server}", builder.ConnectionString, "#D1"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#D2"); Assert.AreEqual ("{SQL Server}", builder ["Driver"], "#D3"); Assert.AreEqual ("{SQL Server}", builder.Driver, "#D4"); builder.Clear (); builder.Driver = string.Empty; Assert.AreEqual ("Driver=", builder.ConnectionString, "#E1"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#E2"); Assert.AreEqual (string.Empty, builder ["Driver"], "#E3"); Assert.AreEqual (string.Empty, builder.Driver, "#E4"); builder.Clear (); builder ["Driver"] = "SQL Server"; Assert.AreEqual ("Driver={SQL Server}", builder.ConnectionString, "#F1"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#F2"); Assert.AreEqual ("SQL Server", builder ["Driver"], "#F3"); Assert.AreEqual ("SQL Server", builder.Driver, "#F4"); builder.Clear (); builder ["Driver"] = "{SQL Server"; Assert.AreEqual ("Driver={{SQL Server}", builder.ConnectionString, "#G1"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#G2"); Assert.AreEqual ("{SQL Server", builder ["Driver"], "#G3"); Assert.AreEqual ("{SQL Server", builder.Driver, "#G4"); builder.Clear (); builder ["Driver"] = "{SQL Server}"; Assert.AreEqual ("Driver={SQL Server}", builder.ConnectionString, "#H1"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#H2"); Assert.AreEqual ("{SQL Server}", builder ["Driver"], "#H3"); Assert.AreEqual ("{SQL Server}", builder.Driver, "#H4"); builder.Clear (); builder ["Driver"] = string.Empty; Assert.AreEqual ("Driver=", builder.ConnectionString, "#I1"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#I2"); Assert.AreEqual (string.Empty, builder ["Driver"], "#I3"); Assert.AreEqual (string.Empty, builder.Driver, "#I4"); }
public void Indexer_Driver_Null () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); builder ["Driver"] = null; Assert.AreEqual (string.Empty, builder.Driver, "#A1"); Assert.AreEqual (string.Empty, builder ["Driver"], "#A2"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#A3"); Assert.IsTrue (builder.ContainsKey ("drivEr"), "#A4"); Assert.AreEqual (string.Empty, builder.ConnectionString, "#A5"); builder.Driver = "X"; Assert.AreEqual ("X", builder.Driver, "#B1"); Assert.AreEqual ("X", builder ["Driver"], "#B2"); Assert.AreEqual ("X", builder ["driVer"], "#B3"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#B4"); Assert.IsTrue (builder.ContainsKey ("drivEr"), "#B5"); Assert.AreEqual ("Driver={X}", builder.ConnectionString, "#B6"); builder ["Driver"] = null; Assert.AreEqual (string.Empty, builder.Driver, "#C1"); Assert.AreEqual (string.Empty, builder ["Driver"], "#C2"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#C3"); Assert.AreEqual (string.Empty, builder.ConnectionString, "#C4"); builder ["Driver"] = "A"; Assert.AreEqual ("A", builder.Driver, "#D1"); Assert.AreEqual ("A", builder ["Driver"], "#D2"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#D3"); Assert.AreEqual ("Driver={A}", builder.ConnectionString, "#D4"); builder ["Driver"] = null; Assert.AreEqual (string.Empty, builder.Driver, "#E1"); Assert.AreEqual (string.Empty, builder ["Driver"], "#E2"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#E3"); Assert.AreEqual (string.Empty, builder.ConnectionString, "#E4"); }
public void Indexer_Value_Null () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); builder ["DriverID"] = null; Assert.AreEqual (string.Empty, builder.ConnectionString, "#A1"); try { object value = builder ["DriverID"]; Assert.Fail ("#A2:" + value); } catch (ArgumentException ex) { // Keyword not supported: 'DriverID' Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A3"); Assert.IsNull (ex.InnerException, "#A4"); Assert.IsNotNull (ex.Message, "#A5"); Assert.IsTrue (ex.Message.IndexOf ("'DriverID'") != -1, "#A6:" + ex.Message); Assert.IsNull (ex.ParamName, "#A7"); } Assert.IsFalse (builder.ContainsKey ("DriverID"), "#A8"); Assert.AreEqual (string.Empty, builder.ConnectionString, "#A9"); builder ["DriverID"] = "A"; Assert.AreEqual ("DriverID=A", builder.ConnectionString, "#B1"); builder ["DriverID"] = null; Assert.IsFalse (builder.ContainsKey ("DriverID"), "#B2"); Assert.AreEqual (string.Empty, builder.ConnectionString, "#B3"); }
public void Indexer_Keyword_Invalid () { string [] invalid_keywords = new string [] { string.Empty, " ", " abc", "abc ", "\r", "ab\rc", ";abc", "a\0b" }; OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); for (int i = 0; i < invalid_keywords.Length; i++) { string keyword = invalid_keywords [i]; try { builder [keyword] = "abc"; Assert.Fail ("#A1:" + i); } catch (ArgumentException ex) { // Invalid keyword, contain one or more of 'no characters', // 'control characters', 'leading or trailing whitespace' // or 'leading semicolons' Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2:"+ i); Assert.IsNull (ex.InnerException, "#A3:" + i); Assert.IsNotNull (ex.Message, "#A4:" + i); Assert.IsTrue (ex.Message.IndexOf ("'" + keyword + "'") == -1, "#A5:" + i); Assert.AreEqual (keyword, ex.ParamName, "#A6:" + i); } builder [keyword] = null; Assert.IsFalse (builder.ContainsKey (keyword), "#B"); try { object value = builder [keyword]; Assert.Fail ("#C1:" + value + " (" + i + ")"); } catch (ArgumentException ex) { // Keyword not supported: '...' Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2:"+ i); Assert.IsNull (ex.InnerException, "#C3:" + i); Assert.IsNotNull (ex.Message, "#C4:" + i); Assert.IsTrue (ex.Message.IndexOf ("'" + keyword + "'") != -1, "#C5:" + i); Assert.IsNull (ex.ParamName, "#C6:" + i); } } }
public void ContainsKey_Keyword_Null () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); builder ["SourceType"] = "DBC"; try { builder.ContainsKey (null); Assert.Fail ("#1"); } catch (ArgumentNullException ex) { Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2"); Assert.IsNull (ex.InnerException, "#3"); Assert.IsNotNull (ex.Message, "#4"); Assert.AreEqual ("keyword", ex.ParamName, "#5"); } }
public void ContainsKey () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); builder ["SourceType"] = "DBC"; builder.Add ("Port", "56"); Assert.IsTrue (builder.ContainsKey ("SourceType"), "#1"); Assert.IsTrue (builder.ContainsKey ("Port"), "#2"); Assert.IsTrue (builder.ContainsKey ("Dsn"), "#3"); Assert.IsTrue (builder.ContainsKey ("Driver"), "#4"); Assert.IsFalse (builder.ContainsKey ("xyz"), "#5"); builder.Dsn = "myDsn"; Assert.IsTrue (builder.ContainsKey ("Dsn"), "#6"); builder.Driver = "SQL Server"; Assert.IsTrue (builder.ContainsKey ("Driver"), "#7"); builder ["Dsn"] = "myDsn"; Assert.IsTrue (builder.ContainsKey ("Dsn"), "#8"); builder ["Driver"] = "SQL Server"; Assert.IsTrue (builder.ContainsKey ("Driver"), "#9"); builder ["abc"] = "pqr"; Assert.IsTrue (builder.ContainsKey ("ABC"), "#10"); Assert.IsFalse (builder.ContainsKey (string.Empty), "#11"); }
public void Clear () { OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder (); builder ["Dbq"] = "C:\\Data.xls"; builder.Driver = "SQL Server"; builder.Dsn = "AdventureWorks"; builder.Add ("Port", "56"); builder.Clear (); Assert.AreEqual (string.Empty, builder.ConnectionString, "#1"); Assert.IsFalse (builder.ContainsKey ("Dbq"), "#2"); Assert.AreEqual (string.Empty, builder.Driver, "#3"); Assert.AreEqual (string.Empty, builder.Dsn, "#4"); Assert.IsFalse (builder.ContainsKey ("Port"), "#5"); }