SQLite 增删改查学习教程
发布时间:2020-12-12 20:19:53 所属栏目:百科 来源:网络整理
导读:最近想尝试使用单机版数据库,免去安装的烦恼。了解SQLite很适合我的目的,学习了一番,将学习后的成果发布上来。 示例项目代码下载 SQLite GUI工具下载 一、创建数据库 var filePath = " ./1.db " ; // 数据库路径 if (File.Exists(filePath)) File.Delete(
最近想尝试使用单机版数据库,免去安装的烦恼。了解SQLite很适合我的目的,学习了一番,将学习后的成果发布上来。 示例项目代码下载 SQLite GUI工具下载 一、创建数据库 var filePath = "./1.db";//数据库路径 if (File.Exists(filePath)) File.Delete(filePath); //创建数据库 SQLiteHelp help = new SQLiteHelp(); help.Create(filePath); 二、创建表 var createTable = @"CREATE TABLE [User] ( [ID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,[Name] VARCHAR(500) NOT NULL,[date] DATE DEFAULT CURRENT_DATE NULL,[time] TIME DEFAULT CURRENT_DATE NULL,[curr] TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL )"; help.ExecuteNonQuery(createTable); 三、插入数据 List<string> lst = new List<string>(); //Insert 第一种写法 Console.WriteLine("当前时间:{0}",DateTime.Now); for (var i = 0; i < 30; i++) { //插入数据 并返回自增的ID help.ExecuteInsert("insert into User (Name) values ('武汉经纬视通')"); lst.Add("insert into User (Name) values ('武汉经纬视通')"); } Console.WriteLine("当前时间:{0} {1}",DateTime.Now,"常规Insert完毕"); //Insert 第二种写法 使用参数化SQL 其他的SQL语句也同样可以这样写 for (var i = 0; i < 30; i++) { help["@Name"] = "武汉经纬视通"; help.ExecuteInsert("insert into User (Name) values (@Name)"); lst.Add("insert into User (Name) values ('武汉经纬视通')"); } Console.WriteLine("当前时间:{0} {1}","参数化Insert完毕"); //将所有的insert放在一个事务里 插入效率会提高 help.ExecuteNonQuery(lst); Console.WriteLine("当前时间:{0} {1}","批量执行SQL完毕"); 四、删除数据 //删除ID<10的数据 help["@ID"] = 10; help.ExecuteNonQuery("Delete from User where ID<@ID"); 五、修改数据 help["@Name"] = "冲动"; help["@ID"] = 20; help.ExecuteNonQuery("Update User set Name = @Name where ID = @ID"); 六、统计与分页 //统计总数 var count = help.Count("Select count(*) from User"); var max = help.Count("Select max(ID) from User"); var min = help.Count("Select min(ID) from User"); Console.WriteLine("User 总数:{0} 最大ID:{1} 最小ID {2}",count,max,min); //查询数据 var dt = help.ExecuteSql("Select * from User"); //查询分页数据 第一页 每页15条 //使用分页SQL语句 dt = help.ExecuteSql("Select * from User limit 0,15"); //封装分页 dt = help.ExecuteSql("Select * from User",0,15); 七、DataReader读取 //使用DbDataReader获取数据 using (var reader = help.ExecuteSqlReader("Select * from User",15)) { while (reader.Read()) { Console.WriteLine("ID:{0},Name:{1},date:{2},time:{3},curr:{4}",reader["ID"],reader["Name"],reader["date"],reader["time"],reader["curr"]); } } 对于SQLite数据库常用操作的简单封装,提供了完整的例子与GUI可视化查看工具。 关于SQLite的时间数据类型,有TIME,Date,TIMESTAMP 。举例来说,当前时间为2013-03-11 19:44:41,TIME =19:44:41,Date= 2013-03-11,TIMESTAMP=2013-03-11 19:44:41。 在程序的处理中可以不用管,貌似SQLite驱动会自动截取,也就是说,传入Date.Now参数,以上3个类型只会存储自己需要的部分。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |