示例#1
0
        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);
        }
示例#2
0
        /// <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));
        }