public sealed override void Open(BaseLoginInfo pInfo) { //Record to base class (Vital) baseLoginInfo = pInfo; LoginInfo_Sqlite myInfo = pInfo as LoginInfo_Sqlite; LoginInfo_ForAllDbTypes allInfo = pInfo as LoginInfo_ForAllDbTypes; if ((myInfo == null) && (allInfo == null)) { throw new ArgumentException("Only Support Sqlite login info and AllDBTypes Info"); } if (IsOpened) { return; } try { string connectionStr = string.Empty; if (allInfo != null) { myInfo = new LoginInfo_Sqlite(); myInfo.Pwd = allInfo.Pwd; myInfo.IsUnicode = allInfo.IsUnicode; myInfo.IsReadOnly = false; myInfo.DbFile = allInfo.Database; } connectionStr = DbConnectionString.Sqlite.Standard( myInfo.DbFile, myInfo.IsReadOnly, myInfo.IsUnicode, myInfo.Pwd); baseConn = new SQLiteConnection(connectionStr); baseConn.Open(); CurDatabase = myInfo.DbFile; invalidator = new InvalidatorSqlite(); } catch (SQLiteException ee) { throw ee; } catch (DbException eee) { throw eee; } }
public sealed override bool CreateDatabase(BaseLoginInfo loginInfo) { LoginInfo_Sqlite myInfo = loginInfo as LoginInfo_Sqlite; if (string.IsNullOrEmpty(myInfo.DbFile)) { throw new ArgumentException("Db name can't be empty or null"); } try { SQLiteConnection.CreateFile(myInfo.DbFile); return(true); } catch (SQLiteException ee) { Debug.WriteLine(ee.Message); return(false); } }