测试插入数据
try { SQLiteConnection cnn = new SQLiteConnection(@"Data Source=G:\App_Data\Data.sqlite;"); cnn.Open(); using (SQLiteTransaction dbTrans = cnn.BeginTransaction()) { using (SQLiteCommand cmd = cnn.CreateCommand()) { try { cmd.CommandText = @"INSERT INTO Students (Name, Description) VALUES (‘1‘, ‘2‘)"; for (int n = 0; n < 100000; n++) { cmd.ExecuteNonQuery(); } dbTrans.Commit(); } catch { dbTrans.Rollback(); } } } } catch (Exception ex) { Clipboard.SetText(ex.Message + "\r\n\r\n" + ex.StackTrace); }
删除表中的数据后,发现数据库文件并未变小。
执行以下操作:
using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { using (SQLiteCommand cmd = new SQLiteCommand("VACUUM", connection)) { try { connection.Open(); cmd.ExecuteNonQuery(); } catch (System.Data.SQLite.SQLiteException E) { connection.Close(); } } }
发现数据库文件变为2kb。
注意压缩数据库执行操作中,不要使用Transaction事务,否则会失败。
原文:http://www.cnblogs.com/kosin/p/4822355.html