public SqliteSingleConnection(string connectionString) { lock (_simpleLocker) { int sourceIndex = connectionString.IndexOf("Source", StringComparison.OrdinalIgnoreCase); if (sourceIndex < 1) { return; } int startedIndex = connectionString.IndexOf('=', sourceIndex) + 1; if (startedIndex < sourceIndex) { return; } int endIndex = connectionString.IndexOf(';', startedIndex); if (endIndex < startedIndex) { endIndex = connectionString.Length - 1; } _curDbfile = connectionString.Substring(startedIndex, (endIndex - startedIndex)); if (!_dbFileDic.ContainsKey(_curDbfile)) { var con = new ConnectionWithRefCount(connectionString); _dbFileDic.Add(_curDbfile, con); } ConnectionWithRefCount connection = _dbFileDic[_curDbfile]; connection.Initialize(); CurConnection = connection; } }
public SqliteSingleConnection(SQLiteConnectionStringBuilder connectObject) { lock (_simpleLocker) { _curDbfile = connectObject.DataSource; if (!_dbFileDic.ContainsKey(_curDbfile)) { var con = new ConnectionWithRefCount(connectObject.ConnectionString); _dbFileDic.Add(_curDbfile, con); } ConnectionWithRefCount connection = _dbFileDic[_curDbfile]; connection.Initialize(); CurConnection = connection; } }