public void JournalModeAsync_GivenInvalidJournalModeValue_ThrowsArgumentException() { var connection = CreateConnectionFactory(); var dbPragma = CreateDatabasePragma(connection, MainSchema); const JournalMode newValue = (JournalMode)55; Assert.That(() => dbPragma.JournalModeAsync(newValue), Throws.ArgumentException); }
/// <summary> /// Method sets the journal mode of the currently /// opened database (or throws an exception if database was unavailable). /// </summary> /// <returns></returns> public void JournalMode(JournalMode journalMode) { try { using (SQLiteCommand cmd = new SQLiteCommand(_Connection)) { // String is case-insensitive cmd.CommandText = string.Format("pragma journal_mode = {0};", journalMode.ToString()); cmd.ExecuteNonQuery(); } return; } catch (Exception exp) { Status = exp.Message; this.Exception = exp; throw new Exception(exp.Message); } }
/// <summary> /// 打开Sqlite数据库 /// </summary> /// <param name="filePath">文件目录</param> /// <param name="pwd">密码</param> /// <param name="useSynchronous">使用同步,为False则更快</param> /// <param name="journalMode">Journal模式</param> /// <returns></returns> public static SqlHelper OpenSqliteFile(string filePath, string pwd = "", bool useSynchronous = true, JournalMode journalMode = JournalMode.Delete) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Data Source={0};Version=3;", filePath); //sb.AppendFormat("Data Source={0};", filePath); if (string.IsNullOrEmpty(pwd) == false) { sb.AppendFormat("Password={0};", pwd); } if (useSynchronous == false) { sb.Append("synchronous=OFF;"); } sb.Append("Page Size=4096;"); sb.AppendFormat("Journal Mode={0};", journalMode.ToString()); return(OpenDatabase(sb.ToString(), "System.Data.SQLite", SqlType.SQLite)); }