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#相关推荐

  1. android数据库isnull,Android中SQLite数据库知识点总结

    SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...

  2. C++ VS2013环境编译使用sqlite数据库全过程

    转载:http://www.cnblogs.com/imoon/archive/2012/11/30/2796726.html 转载:https://blog.csdn.net/hjm4702192/ ...

  3. iOS开发-xcdatamodeld文件 CoreData的介绍和使用,sqlite的使用

    CoreData的介绍和使用  源引:http://www.jianshu.com/p/d027090af00e CoreData是数据存储的一种方式,CoreData实质也是对SQLite的封装. ...

  4. node sqlite 插入数据_安卓手机中的应用数据都保存在哪些文件中?

    随笔 知识 案例 声音 其他 编者按 手机取证,品牌是一方面,从操作系统入手是另外一个渠道.手机中的重要数据基本上都以轻量数据库的形式保存在本地,也就是经常讲的sqlite db文件中. 从推特上得知 ...

  5. android数据库降级_Android SQLite (二.数据库创建,升级及降级)

    上篇文章简介和常用语法介绍了SQLite数据库的基本信息和一些常用的语法操作,本篇文章主要介绍Android开发过程中SQLite数据库的创建使用和常见问题处理. 一.SQLiteOpenHelper ...

  6. android 数据库索引,SQLite数据库提供警告自动索引(列)升级Android L后

    我已经升级了我的Nexus 7与Android 5.0 Lollipop,之前,我的应用程序运行良好与SQLite数据库,但现在每当我执行任何类型的查询,它给我log cat错误,如: 12-09 1 ...

  7. Android客户端开发—数据库SQLite基本语句

    之前接触过一点MySQL数据库方面的知识,现在在学习Android软件开发过程中发现SQLite语句与MySQL的语句还是有部分不同,SQLite中的命令不算太多,可以在adb shell中进入App ...

  8. Android SQLite数据库之事务的学习

    SQLite是Android系统内置的一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,通常只需要几百K的内存就足够了.SQLite不仅支持标准的SQL语法,还遵循了数据库的ACID事务. ...

  9. 基础学习总结(四)--SQLite

    1. SQLiteDatabase 操作SQLite数据库的类.可以执行SQL语句,对数据库进行增.删.查.改的操作.也可以进行transaction的控制.很多类对数据库的操作最终都是通过SQLit ...

  10. 操作SQLite数据库

    本文摘自: http://docs.blackberry.com/en/developers/deliverables/25108/Creating_and_deleting_SQLite_datab ...

最新文章

  1. 浅析Hyperledger Fabric共识算法
  2. Svchost.exe病毒
  3. python创建csv文件并写入-【已解决】Python中创建和保存数据到csv文件中
  4. java 特殊符号正则_java利用正则表达式处理特殊字符的方法实例
  5. Cloud for Customer系统里的附件url,可以通过partner编程自己生成么?
  6. 关于 php mysql pdo cannot find driver 解决方案
  7. 走进缓存的世界(一) - 开篇
  8. linux 摄像头设置时间同步,linux系统设置时间同步
  9. 一些科研中经常用到的工具
  10. oracle excute call,oracle – EXECUTE识别存储过程,CALL不识别
  11. qmail 发邮件故障
  12. 数据一致性(CAP原则)
  13. (数据结构)树的深度/高度
  14. 全球打工人的抗争!谷歌员工希望更公平,国内只求告别996
  15. Elasticsearch怎样实现自定义分词
  16. w7系统计算机搜索无法搜索了,win7系统在搜索框中输入文字后无法搜索的详细教程...
  17. 【记忆中的CASIO】
  18. 为什么都在选择学习Java
  19. 提升STEAM教师能力素养提升路径
  20. c语言中 %d与%2d与%02d的区别在哪里

热门文章

  1. python名片管理系统_Python名片管理系统
  2. c# 程序员学习android(2)登陆界面
  3. 数据挖掘如何计算相关性_一份数据挖掘入门指南!!!
  4. 关于单细胞批次矫正那些事(二) KBET 用于单细胞批次矫正结果的评估
  5. h5调微信支付 unkonw url_h5移动端调用支付宝、微信支付的实现
  6. tomcat websock html5,websocket实战(4) websocket版贪食蛇游戏(tomcat官方自带)
  7. oracle导出数据带where,CSS_指定一个where条件来有条件地导出记录,在Oracle数据库中,exp中的query - phpStudy...
  8. ping的时候怎么暂停_dos命令pause教程,?暂停bat批处理脚本程序,?请按任意键继续...
  9. Android NDK开发之 NEON使用介绍
  10. 卷积云神经网络_有卷积云的北京天空好美!是不是还有池化云?全连接云?