sqlite初识SqlLite —.net连接数据库

一个和当前数据库文件一律大小的新数据库文件,之后再将该数据库文件中的数据有团体的导入到新文件中,其中已经删除的数据块将不会被导入,在完成导入后,

在sqlite链接中,你可以为您的sqlite数据库设置密码和任何安排。确定后,会转移一个从未有过扩大名的数据文件。

 

sqlite 1

相似的sqlite程序在没密码的情状下,很难打开。

是因为此类数据表中的多少存储分外分散,由此在询问时,不可能拿到更好的批量IO读取效果,从而影响了查询功能。 

原因是驱动版本问题,详细可见

裁减新数据库文件的尺寸到合适的轻重。可以运用VACUUM的不二法门对sqlite数据库举办清理:

Sqlite数据库清理

最终,表达下SQLite的一个糟糕的地点,当数据库中的一个或两个数据表存在大量的插入、更新和删除等操作时,将会有恢宏的磁盘空间被已删除的数据所占用,

capable of installing the design-time components for Visual Studio
2010.
 

 

SQLiteConnection sqlconn = new SQLiteConnection(@"Data Source=C:\cache;Version=3;Password=123");
                sqlconn.Open();
                SQLiteCommand sqlCom = sqlconn.CreateCommand();
                sqlCom.CommandText = "VACUUM";
                sqlCom.ExecuteNonQuery();

我们一般都了解到,sqlite数据文件是.db或.sqlite或其他扩充结尾,而用VS2010创办的sqlite数据库文件是未曾扩大名的,并且其加密能力特别高,

好了,介绍了不少运转下边代码试试:

sqlite 2

用VS2010创设sqlite数据库后,就可以像操作sql
server这样操作sqlite,如:建表,查询等都非凡便于,感兴趣的可以尝试下,这里就不一一截图讲明了。

Sqlite有特意为VS2010支出的次第包,大家可以到System.Data.SQLite Download
Page
 下去下载,注意是:This
is the only setup package that is

设置后,在VS2010中新建数数库链接就会合到有System.Data.SQLite的链接,在此处你可以创制和开拓Sqlite数据库:

  Sqlite
是一款轻量级的关系型数据库,以精妙和嵌入式有名。以前只是传闻,现在好不容易忍不住要品尝下.本文的初衷是为.net平台的使用者提供援救。

 string datasource = "D:/sqlLite/SQLite.NET/bin/Test.db3";
            System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
            //连接数据库
            System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();
            System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
            connstr.DataSource = datasource;
            connstr.Password = "admin";//设置密码,SQLite ADO.NET实现了数据库密码保护
            conn.ConnectionString = connstr.ToString();
            conn.Open();
            //创建表
            System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
            string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";
            cmd.CommandText = sql;
            cmd.Connection = conn;
            cmd.ExecuteNonQuery();
            //插入数据
            sql = "INSERT INTO test VALUES('a','b')";
            cmd.CommandText = sql;
            cmd.ExecuteNonQuery();
            //取出数据
            sql = "SELECT * FROM test";
            cmd.CommandText = sql;
            System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
            StringBuilder sb = new StringBuilder();
            while (reader.Read())
            {
                sb.Append("username:").Append(reader.GetString(0)).Append("\n")
                .Append("password:").Append(reader.GetString(1));
            }
            Console.WriteLine(sb.ToString());
            Console.Read();

在品种,需要充裕sqlite引用:System.Data.SQLite.dll和System.Data.SQLite.Linq.dll

点击运行,有可能会报错:

在未曾实施VACUUM命令在此之前,SQLite并不曾将它们归还于操作系统。

在SQLite中,仅匡助清理当前连连中的主数据库,而不可能清理其他Attached数据库。VACUUM命令在成就多少清理时行使了和PostgreSQL相同的策略,即创建

混合形式先后集是本着“v2.0.50727”版的运行时生成的,在并未配备其他消息的动静下,不能在 4.0 运行时中加载该…

釜底抽薪办法就是在app.config中参加

 

  <startup useLegacyV2RuntimeActivationPolicy="true">

    <supportedRuntime version="v4.0"/>

  </startup>

 

因为我用的是控制台,所有要此外添加app.config文件

好,在运行,成功:结果如下

sqlite 3

自己有一个疑点,这一个数据库文件我怎么转移,难道直接用这些Test.db3。问题先留着,有了然能够告知自己一下,因为是浅浅的尝试还有众多不知晓。逐渐学,逐步滋长,我会一向将自我的感受都写出来的

 

 

网站地图xml地图