简述
关系型
优点:
1.嵌入式,我的理解就是跟着程序走,轻便,只需一个dll可享受所有服务
2.速度比MysqL快
3.配置简单
4.可移植
缺点:
自己查吧
工具
sqlite下载地址 : http://www.sqlite.org/download.html
sqlite可视化工具:sqlite Database Browser(这个百度一下,种类还不少)
1.部署
2.连接
private sqliteConnection _connection;
private void @H_404_46@ConnectionDb(string dbName,string path = null)
{
if(null == path)
path = Environment.CurrentDirectory;
var connectionString = string.Format(@"Data Source={0}\{1}.db;Pooling=true;FailIfMissing=false",path,dbName);
_connection = new sqliteConnection(connectionString);
_connection.Open();
}
1.玩过数据库的人一看也明白什么意思了,就不加注释了
2.由此看出sqlite的后缀是.db
3.连接字符串的写法按网上的写法错误,估计不是版本更新了,就是没有测试就上传博文。错误图如下
4.连接字符串正确的写法可参考我的,或者在你安装sqlite后有一个”Test Application“的exe,可复制它的写法,运行后图如下
3.建库
1.在上面的连接给出的代码中已经有建库的代码,库名dbName
2.dbName,有,连接,无,创建
3.库中没有表是无法看到该库的
4.电脑上建一个txt,后缀改为db,就可以当做sqlite的库来用
4.建表
private void CreateTable(string tableName,List<string> columsName )
{
var colums = columsName.Aggregate( (current,colum) => current + ("," + colum) ); //建表的列时不用考虑列的类型 @H_404_46@var @H_404_46@sql = @H_404_46@string.@H_404_46@Format("create table if not exists {0}({1})",tableName,colums); @H_404_46@sqliteCommand @H_404_46@cmd = @H_404_46@new @H_404_46@sqliteCommand(sql,_connection); @H_404_46@cmd.@H_404_46@ExecuteNonQuery(); }
1.定义表的字段,不用考虑类型
2.ExecuteNonQuery来执行sql语句
5.插入
private void Insert(string tableName,List<string> valueList)
{
var valus = valueList.Aggregate((current,valu) => current + string.Format(",'{0}' ",valu)); @H_404_46@var @H_404_46@sqlInsert = @H_404_46@new @H_404_46@sqliteCommand(_connection); @H_404_46@sqlInsert.@H_404_46@CommandText = @H_404_46@string.@H_404_46@Format("insert into {0} values({1})",valus); @H_404_46@sqlInsert.@H_404_46@ExecuteNonQuery(); }
6.关闭
private void @H_404_46@CloseDb()
{
_connection.Close();
}
题外话1:朋友接的私活,餐馆的管理程序,在数据库方面我给他推荐sqlite,这个我也只是听过,昨晚就先试用走通,暂时只是做了部署、连接、建库、建表、插入数据、关闭,结果图如下:
题外话2:安装sqlite后看到里面有EF6.0的dll,难道可以……