sqlite C#
sqlite是一种轻量级的本地数据库,对于一般应用程序来说,非常方便。数据库读取无非建立连接,然后执行。
1、建立连接
string DBFile = @"D:\test\sqliteTest\myTest\test.db";if (File.Exists(DBFile)){File.Delete(DBFile);}SQLiteConnection conn = new SQLiteConnection(string.Format("Data Source={0}", DBFile));conn.Open();
2、创建执行命令,创建两个表格。
SQLiteCommand cmd = conn.CreateCommand();cmd.CommandText = "create table table1(ID,Name,Sex,Age,Salary)";cmd.ExecuteNonQuery();cmd.CommandText = "create table table2(ID,Major,Title,Level)";cmd.ExecuteNonQuery();
3.写入数据
//插入一条数据cmd.CommandText = @"insert into table1(ID,Name,Sex,Age,Salary)" +"values('01','name01','male','28','8000')";cmd.ExecuteNonQuery();cmd.CommandText = @"insert into table2(ID,Major,Title,Level)" +"values('01','major01','t01','01')";cmd.ExecuteNonQuery();
下面采用sqliteparamater和string.format分别说明一下批量插入数据的方法,写入数据时由于每写入一次要执行一次开启和关闭,所以速度很慢,自此可以使用事务
(一)采用string.format协助写入数据
SQLiteTransaction trans = conn.BeginTransaction();string strFormat = @"insert into table1(ID,Name,Sex,Age,Salary)" +" values('{0}','{1}','{2}','{3}','{4}')";for (int i=0;i<1000;i++){string id = i.ToString();string name = "name" + i;string sex = "male";string age = "28";string salary = "8000";//string.Format(stringFormat, id, name, sex, age, salary); cmd.CommandText = string.Format(strFormat,id,name,sex,age,salary);cmd.ExecuteNonQuery();}trans.Commit();
(二)采用sqliteparamater协助写入数据
cmd.CommandText = @"insert into table2(ID,Major,Title,Level)" +"values(@ID,@Major,@Title,@Level)";for(int i=0;i<1000;i++){SQLiteParameter[] para = new SQLiteParameter[]{new SQLiteParameter("@ID",i.ToString()),new SQLiteParameter("@Major", "major" + i),new SQLiteParameter("@Title", "title" + i),new SQLiteParameter("@Level", "level" + i),}; cmd.Parameters.AddRange(para);cmd.ExecuteNonQuery(); }
4、数据读取
数据读取可以采用sqlitedatareader读取,或者采用sqliteadapter读取到datable或者dataset中。
(一)采用sqlitedatareader读取数据
SQLiteCommand openCmd = conn1.CreateCommand();openCmd.CommandText = "select *from table2";SQLiteDataReader reader = openCmd.ExecuteReader();while (reader.Read()){Console.Write(reader["ID"] + " ");Console.Write(reader["Major"] + " ");Console.Write(reader["Title"] + " ");Console.WriteLine(reader["Level"] + " ");}
(二)采用sqliteadapter读取到datatable中
//SQLiteDataAdapter adapter = new SQLiteDataAdapter(openCmd);//DataTable dt = new DataTable();//adapter.Fill(dt);//for(int i=0;i<dt.Rows.Count;i++)//{// for(int j=0;j<dt.Columns.Count;j++)// {// Console.Write(dt.Rows[i][j] + " ");// }// Console.WriteLine(); //}
(三)采用sqliteadapter读取到dataset中
//读入到dataset里面//SQLiteDataAdapter adapter1 = new SQLiteDataAdapter(Sql,conn1);SQLiteDataAdapter adapter1 = new SQLiteDataAdapter(openCmd);DataSet ds = new DataSet();// adapter1.FillSchema(ds, SchemaType.Source, "ta");adapter1.Fill(ds, "ta");DataTable dt = ds.Tables["ta"];for (int i = 0; i < dt.Rows.Count; i++){for (int j = 0; j < dt.Columns.Count; j++){Console.Write(dt.Rows[i][j] + " ");}Console.WriteLine();}
完整代码:
static void Main(string[] args){string DBFile = @"D:\test\sqliteTest\myTest\test.db";if (File.Exists(DBFile)){File.Delete(DBFile);}SQLiteConnection conn = new SQLiteConnection(string.Format("Data Source={0}", DBFile));conn.Open();SQLiteCommand cmd = conn.CreateCommand();cmd.CommandText = "create table table1(ID,Name,Sex,Age,Salary)";cmd.ExecuteNonQuery();cmd.CommandText = "create table table2(ID,Major,Title,Level)";cmd.ExecuteNonQuery();//插入一条数据cmd.CommandText = @"insert into table1(ID,Name,Sex,Age,Salary)" +"values('01','name01','male','28','8000')";cmd.ExecuteNonQuery();cmd.CommandText = @"insert into table2(ID,Major,Title,Level)" +"values('01','major01','t01','01')";cmd.ExecuteNonQuery();//cmd.Dispose();//conn.Close();//批量添加数据:1、借助string.format辅助添加。2、采用sqliteparamater进行添加//往table1中添加数据,采用方法1,借助string.formatSQLiteTransaction trans = conn.BeginTransaction();string strFormat = @"insert into table1(ID,Name,Sex,Age,Salary)" +" values('{0}','{1}','{2}','{3}','{4}')";for (int i=0;i<1000;i++){string id = i.ToString();string name = "name" + i;string sex = "male";string age = "28";string salary = "8000";//string.Format(stringFormat, id, name, sex, age, salary); cmd.CommandText = string.Format(strFormat,id,name,sex,age,salary);cmd.ExecuteNonQuery();}//方法1//string strFormat1 = @"insert into table2(ID,Major,Title,Level)" +// " values('{0}','{1}','{2}','{3}')";//for(int i=0;i<1000;i++)//{// string id = i.ToString();// string major = "major" + i;// string title = "title" + i;// string level = "level" + i;// cmd.CommandText = string.Format(strFormat1, id, major, title, level);// cmd.ExecuteNonQuery();//}//方法2cmd.CommandText = @"insert into table2(ID,Major,Title,Level)" +"values(@ID,@Major,@Title,@Level)";for(int i=0;i<1000;i++){SQLiteParameter[] para = new SQLiteParameter[]{new SQLiteParameter("@ID",i.ToString()),new SQLiteParameter("@Major", "major" + i),new SQLiteParameter("@Title", "title" + i),new SQLiteParameter("@Level", "level" + i),};cmd.Parameters.AddRange(para);cmd.ExecuteNonQuery();}trans.Commit();cmd.Dispose();conn.Close();//读取sqliteSQLiteConnection conn1 = new SQLiteConnection(string.Format("Data Source={0}", DBFile));conn1.Open();SQLiteCommand openCmd = conn1.CreateCommand();openCmd.CommandText = "select *from table2";//SQLiteDataReader reader = openCmd.ExecuteReader();//while (reader.Read())//{// Console.Write(reader["ID"] + " ");// Console.Write(reader["Major"] + " ");// Console.Write(reader["Title"] + " ");// Console.WriteLine(reader["Level"] + " ");//}//读入到datable里面//SQLiteDataAdapter adapter = new SQLiteDataAdapter(openCmd);//DataTable dt = new DataTable();//adapter.Fill(dt);//for(int i=0;i<dt.Rows.Count;i++)//{// for(int j=0;j<dt.Columns.Count;j++)// {// Console.Write(dt.Rows[i][j] + " ");// }// Console.WriteLine(); //}//读入到dataset里面//SQLiteDataAdapter adapter1 = new SQLiteDataAdapter(Sql,conn1);SQLiteDataAdapter adapter1 = new SQLiteDataAdapter(openCmd);DataSet ds = new DataSet();// adapter1.FillSchema(ds, SchemaType.Source, "ta");adapter1.Fill(ds, "ta");DataTable dt = ds.Tables["ta"];for (int i = 0; i < dt.Rows.Count; i++){for (int j = 0; j < dt.Columns.Count; j++){Console.Write(dt.Rows[i][j] + " ");}Console.WriteLine();}openCmd.Dispose();conn1.Close();Console.ReadKey();}
http://www.runoob.com/sql/sql-create-db.html
转载于:https://www.cnblogs.com/llstart-new0201/p/6816424.html
sqlite C#相关推荐
- android数据库isnull,Android中SQLite数据库知识点总结
SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...
- C++ VS2013环境编译使用sqlite数据库全过程
转载:http://www.cnblogs.com/imoon/archive/2012/11/30/2796726.html 转载:https://blog.csdn.net/hjm4702192/ ...
- iOS开发-xcdatamodeld文件 CoreData的介绍和使用,sqlite的使用
CoreData的介绍和使用 源引:http://www.jianshu.com/p/d027090af00e CoreData是数据存储的一种方式,CoreData实质也是对SQLite的封装. ...
- node sqlite 插入数据_安卓手机中的应用数据都保存在哪些文件中?
随笔 知识 案例 声音 其他 编者按 手机取证,品牌是一方面,从操作系统入手是另外一个渠道.手机中的重要数据基本上都以轻量数据库的形式保存在本地,也就是经常讲的sqlite db文件中. 从推特上得知 ...
- android数据库降级_Android SQLite (二.数据库创建,升级及降级)
上篇文章简介和常用语法介绍了SQLite数据库的基本信息和一些常用的语法操作,本篇文章主要介绍Android开发过程中SQLite数据库的创建使用和常见问题处理. 一.SQLiteOpenHelper ...
- android 数据库索引,SQLite数据库提供警告自动索引(列)升级Android L后
我已经升级了我的Nexus 7与Android 5.0 Lollipop,之前,我的应用程序运行良好与SQLite数据库,但现在每当我执行任何类型的查询,它给我log cat错误,如: 12-09 1 ...
- Android客户端开发—数据库SQLite基本语句
之前接触过一点MySQL数据库方面的知识,现在在学习Android软件开发过程中发现SQLite语句与MySQL的语句还是有部分不同,SQLite中的命令不算太多,可以在adb shell中进入App ...
- Android SQLite数据库之事务的学习
SQLite是Android系统内置的一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,通常只需要几百K的内存就足够了.SQLite不仅支持标准的SQL语法,还遵循了数据库的ACID事务. ...
- 基础学习总结(四)--SQLite
1. SQLiteDatabase 操作SQLite数据库的类.可以执行SQL语句,对数据库进行增.删.查.改的操作.也可以进行transaction的控制.很多类对数据库的操作最终都是通过SQLit ...
- 操作SQLite数据库
本文摘自: http://docs.blackberry.com/en/developers/deliverables/25108/Creating_and_deleting_SQLite_datab ...
最新文章
- 浅析Hyperledger Fabric共识算法
- Svchost.exe病毒
- python创建csv文件并写入-【已解决】Python中创建和保存数据到csv文件中
- java 特殊符号正则_java利用正则表达式处理特殊字符的方法实例
- Cloud for Customer系统里的附件url,可以通过partner编程自己生成么?
- 关于 php mysql pdo cannot find driver 解决方案
- 走进缓存的世界(一) - 开篇
- linux 摄像头设置时间同步,linux系统设置时间同步
- 一些科研中经常用到的工具
- oracle excute call,oracle – EXECUTE识别存储过程,CALL不识别
- qmail 发邮件故障
- 数据一致性(CAP原则)
- (数据结构)树的深度/高度
- 全球打工人的抗争!谷歌员工希望更公平,国内只求告别996
- Elasticsearch怎样实现自定义分词
- w7系统计算机搜索无法搜索了,win7系统在搜索框中输入文字后无法搜索的详细教程...
- 【记忆中的CASIO】
- 为什么都在选择学习Java
- 提升STEAM教师能力素养提升路径
- c语言中 %d与%2d与%02d的区别在哪里
热门文章
- python名片管理系统_Python名片管理系统
- c# 程序员学习android(2)登陆界面
- 数据挖掘如何计算相关性_一份数据挖掘入门指南!!!
- 关于单细胞批次矫正那些事(二) KBET 用于单细胞批次矫正结果的评估
- h5调微信支付 unkonw url_h5移动端调用支付宝、微信支付的实现
- tomcat websock html5,websocket实战(4) websocket版贪食蛇游戏(tomcat官方自带)
- oracle导出数据带where,CSS_指定一个where条件来有条件地导出记录,在Oracle数据库中,exp中的query - phpStudy...
- ping的时候怎么暂停_dos命令pause教程,?暂停bat批处理脚本程序,?请按任意键继续...
- Android NDK开发之 NEON使用介绍
- 卷积云神经网络_有卷积云的北京天空好美!是不是还有池化云?全连接云?