300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > sqllite能连接mysql_初识SqlLite ---.net连接数据库

sqllite能连接mysql_初识SqlLite ---.net连接数据库

时间:2023-05-10 11:51:18

相关推荐

sqllite能连接mysql_初识SqlLite ---.net连接数据库

Sqlite 是一款轻量级的关系型数据库,以小巧和嵌入式闻名。以前只是听说,现在终于忍不住要尝试下.本文的初衷是为.net平台的使用者提供帮助。

Sqlite有专门为VS开发的程序包,大家可以到System.Data.SQLite Download Page下去下载,注意是:This is the only setup package that is

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

安装后,在VS中新建数数库链接就会看到有System.Data.SQLite的链接,在这里你可以创建和打开Sqlite数据库:

在sqlite链接中,你可以为你的sqlite数据库设置密码和其他配置。确定后,会生成一个没有扩展名的数据文件。

大家一般都了解到,sqlite数据文件是.db或.sqlite或其他扩展结尾,而用VS创建的sqlite数据库文件是没有扩展名的,并且其加密能力特别高,

一般的sqlite程序在没密码的情况下,很难打开。

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

在项目,需要添加sqlite引用:System.Data.SQLite.dll和System.Data.SQLite.Linq.dll

Sqlite数据库清理

最后,说明下SQLite的一个不好的地方,当数据库中的一个或多个数据表存在大量的插入、更新和删除等操作时,将会有大量的磁盘空间被已删除的数据所占用,

在没有执行VACUUM命令之前,SQLite并没有将它们归还于操作系统。

由于该类数据表中的数据存储非常分散,因此在查询时,无法得到更好的批量IO读取效果,从而影响了查询效率。

在SQLite中,仅支持清理当前连接中的主数据库,而不能清理其它Attached数据库。VACUUM命令在完成数据清理时采用了和PostgreSQL相同的策略,即创建

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

收缩新数据库文件的尺寸到适当的大小。可以使用VACUUM的方法对sqlite数据库进行清理:

SQLiteConnection sqlconn = new SQLiteConnection(@"Data Source=C:\cache;Version=3;Password=123");

sqlconn.Open();

SQLiteCommand sqlCom=sqlconn.CreateCommand();

mandText= "VACUUM";

sqlCom.ExecuteNonQuery();

好了,介绍了很多运行下面代码试试:

string datasource = "D:/sqlLite//bin/Test.db3";

System.Data.SQLite.SQLiteConnection.CreateFile(datasource);//连接数据库

System.Data.SQLite.SQLiteConnection conn = newSystem.Data.SQLite.SQLiteConnection();

System.Data.SQLite.SQLiteConnectionStringBuilder connstr= newSystem.Data.SQLite.SQLiteConnectionStringBuilder();

connstr.DataSource=datasource;

connstr.Password= "admin";//设置密码,SQLite 实现了数据库密码保护

conn.ConnectionString =connstr.ToString();

conn.Open();//创建表

System.Data.SQLite.SQLiteCommand cmd = newSystem.Data.SQLite.SQLiteCommand();string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";

mandText=sql;

cmd.Connection=conn;

cmd.ExecuteNonQuery();//插入数据

sql = "INSERT INTO test VALUES('a','b')";

mandText=sql;

cmd.ExecuteNonQuery();//取出数据

sql = "SELECT * FROM test";

mandText=sql;

System.Data.SQLite.SQLiteDataReader reader=cmd.ExecuteReader();

StringBuilder sb= newStringBuilder();while(reader.Read())

{

sb.Append("username:").Append(reader.GetString(0)).Append("\n")

.Append("password:").Append(reader.GetString(1));

}

Console.WriteLine(sb.ToString());

Console.Read();

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

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

解决方法就是在app.config中加入

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

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

我有一个疑问,这个数据库文件我怎么生成,难道一直用这个Test.db3。问题先留着,有知道可以告诉我一下,因为是浅浅的尝试还有很多不知道。慢慢学,慢慢提高,我会一直将我的心得都写出来的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。