您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > C/C++/C#

c#读写SQLite数据库文件例子

时间:2021-12-16 10:02:02  来源:  作者:今朝我的奋斗

读取SQLite数据库,就是读取一个路径\192.168.100.**positiondb.sqlite下的文件

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>

</startup>

这个放在</configuration>里面去

我在winform 里的代码

public void jiazaiweizhi()

{

string sql = "SELECT * FROM messages";

string connStr = @"Data Source=" + @"\192.168.100.**positiondb.sqlite;Initial Catalog=sqlite;Integrated Security=True;Max Pool Size=10";

using (SQLiteConnection conn = new SQLiteConnection(connStr))

{

using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(sql, conn))

{

DataSet ds = new DataSet();

adapter.Fill(ds);

DataTable dt = ds.Tables[0];

// MessageBox.Show(dt.Columns[1].ColumnName, "数据库信息");

textBox1.Text = "当前位置" + Environment.NewLine + dt.Rows[0][1].ToString();

}

}

}

.Net SQLite数据库驱动以及System.Data.SQLite.dll下载最新地址:

http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

(电脑上可以搜索System.Data.SQLite.dll这个dll,加载进入项目之后 可以看它的版本)

SQLite管理工具下载地址:

http://www.cr173.com/soft/94247.html

App.config文件修改:

  1. <?xml version="1.0"?>
  2. <configuration>
  3. <appSettings>
  4. <!--FailIfMissing=false表示数据库不存在时就会自动创建-->
  5. <add key="DbSQLite" value="data source=|DataDirectory|DB.db3;Pooling=true;FailIfMissing=false"/>
  6. </appSettings>
  7. </configuration>

备注:如果开发环境是4.0,而System.Data.Sqlite是比较低的版本,则可能会弹出错误信息“混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集”,解决方法是在上面加上:

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>

</startup>

这个放在</configuration>里面去

数据库读写助手SqliteHelper.cs

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. using System.Data.Common;
  7. using System.Data.SQLite;
  8.  
  9.  
  10. public class SqliteHelper
  11. {
  12. public SqliteHelper()
  13. {
  14. //
  15. //TODO: 在此处添加构造函数逻辑
  16. //
  17. }
  18.  
  19. private static SQLiteConnection GetConnection()
  20. {
  21. string connStr = System.Configuration.ConfigurationManager.AppSettings["DbSQLite"].ToString();
  22. SQLiteConnection conn = new SQLiteConnection(connStr);
  23. conn.Open();
  24. return conn;
  25. }
  26.  
  27. public static int ExecuteSql(string sql)
  28. {
  29. using (SQLiteConnection conn = GetConnection())
  30. {
  31. var cmd = new SQLiteCommand(sql, conn);
  32. return cmd.ExecuteNonQuery();
  33. }
  34. }
  35.  
  36. public static int ExecuteScalar(string sql)
  37. {
  38. using (SQLiteConnection conn = GetConnection())
  39. {
  40. var cmd = new SQLiteCommand(sql, conn);
  41. object o = cmd.ExecuteScalar();
  42. return int.Parse(o.ToString());
  43. }
  44. }
  45. public static SQLiteDataReader ExecuteReader(string sql)
  46. {
  47. SQLiteConnection conn = GetConnection();
  48. var cmd = new SQLiteCommand(sql, conn);
  49. SQLiteDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  50. return myReader;
  51. }
  52. public static DataSet ExecDataSet(string sql)
  53. {
  54. using (SQLiteConnection conn = GetConnection())
  55. {
  56. var cmd = new SQLiteCommand(sql, conn);
  57. SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
  58. DataSet ds = new DataSet();
  59. da.Fill(ds);
  60.  
  61. return ds;
  62. }
  63. }
  64. }

窗体中应用Form1.cs

    1. //判断表是否存在,不存在则生成
    2. int result = SqliteHelper.ExecuteScalar("SELECT COUNT(*) FROM sqlite_master where type='table' and name='tb'");
    3. if (result == 0)
    4. {
    5. //创建表
    6. SqliteHelper.ExecuteSql("create table [tb] (id integer PRIMARY KEY autoincrement, [name] varchar(20), [createDate] datetime default (datetime('now', 'localtime')))");
    7. }
    8. //插入一行数据
    9. result = SqliteHelper.ExecuteSql("insert into [tb](name) values ('Luck')");
    10. if(result > 0)
    11. {
    12. string msg = "";
    13. //读取数据
    14. SQLiteDataReader dr = SqliteHelper.ExecuteReader("select * from [tb]");
    15. if (dr.Read())
    16. {
    17. msg += dr[0] + "," + dr[1] + "," + dr[2];
    18. }
    19. MessageBox.Show(msg);
    20. }


Tags:c#   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、简介很多时候我们都需要用到一些验证的方法,有时候需要用正则表达式校验数据时,往往需要到网上找很久,结果找到的还不是很符合自己想要的。所以我把自己整理的校验帮助类分...【详细内容】
2021-12-27  Tags: c#  点击:(0)  评论:(0)  加入收藏
读取SQLite数据库,就是读取一个路径\\192.168.100.**\position\db.sqlite下的文件<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/...【详细内容】
2021-12-16  Tags: c#  点击:(21)  评论:(0)  加入收藏
一文看懂"async"和“await”关键词是如何简化了C#中多线程的开发过程当我们使用需要长时间运行的方法(即,用于读取大文件或从网络下载大量资源)时,在同步的应用程序中,应用程序本...【详细内容】
2021-12-01  Tags: c#  点击:(23)  评论:(0)  加入收藏
OpenCV(Open Source Computer Vision Library)是一个(开源免费)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android、ios等操作系统上,它轻量级而且高效---由一系列...【详细内容】
2021-11-11  Tags: c#  点击:(50)  评论:(0)  加入收藏
在进行C#接口开发时经常需要将数据集转换成json返回,下面介绍一种将DataTable数据转换成实体类,然后再转换成json的方法。一、创建全病案类/// <summary> /// 全病案 //...【详细内容】
2021-11-04  Tags: c#  点击:(44)  评论:(0)  加入收藏
C# 获取网络路径文件大小信息的方法private void button1_Click(object sender, EventArgs e){label2.Text= GetInfo(textBox1.Text);}private string GetInfo(string URL){...【详细内容】
2021-10-29  Tags: c#  点击:(52)  评论:(0)  加入收藏
现如今二维码广泛应用,已经成为了生活中不可或缺的东西;所以我们日常的开发中,也少不了对二维码的生成或者解析。此文讲述一下使用C# 生成和解析二维码 实现功能:将字符串生成二...【详细内容】
2021-10-21  Tags: c#  点击:(58)  评论:(0)  加入收藏
最开始接触.net大概是2003年,当时用的还是framework1.1,那是CAM项目,使用.net主要是利用RemotingService做分布式开发,我当时做其中的一个子系统,因为之前一直都是C++开发,对C#一...【详细内容】
2021-08-17  Tags: c#  点击:(102)  评论:(0)  加入收藏
最近想自己做个录屏工具玩玩,使用的是ffmpeg,录屏是没有问题,在取麦克风及电脑声卡遇到了难题,ffmpeg也可以获取到设备名称但是没办法解析 ( 指令:ffmpeg -list_devices true -f d...【详细内容】
2021-08-04  Tags: c#  点击:(276)  评论:(0)  加入收藏
在实际的项目开发中,可能需要考虑代码的安全性或执行效率,需要将具体的功能实现隐藏,dll接口提供了很好的解决方案。dll接口不仅在C++的项目中可以直接调用,在C#开发的项目也同...【详细内容】
2021-07-09  Tags: c#  点击:(122)  评论:(0)  加入收藏
▌简易百科推荐
一、简介很多时候我们都需要用到一些验证的方法,有时候需要用正则表达式校验数据时,往往需要到网上找很久,结果找到的还不是很符合自己想要的。所以我把自己整理的校验帮助类分...【详细内容】
2021-12-27  中年农码工    Tags:C#   点击:(0)  评论:(0)  加入收藏
引言在学习C语言或者其他编程语言的时候,我们编写的一个程序代码,基本都是在屏幕上打印出 hello world ,开始步入编程世(深)界(坑)的。C 语言版本的 hello world 代码:#include <std...【详细内容】
2021-12-21  一起学嵌入式    Tags:C 语言   点击:(10)  评论:(0)  加入收藏
读取SQLite数据库,就是读取一个路径\\192.168.100.**\position\db.sqlite下的文件<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/...【详细内容】
2021-12-16  今朝我的奋斗    Tags:c#   点击:(21)  评论:(0)  加入收藏
什么是shellshell是c语言编写的程序,它在用户和操作系统之间架起了一座桥梁,用户可以通过这个桥梁访问操作系统内核服务。 它既是一种命令语言,同时也是一种程序设计语言,你可以...【详细内容】
2021-12-16  梦回故里归来    Tags:shell脚本   点击:(16)  评论:(0)  加入收藏
一、编程语言1.根据熟悉的语言,谈谈两种语言的区别?主要浅谈下C/C++和PHP语言的区别:1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互...【详细内容】
2021-12-15  linux上的码农    Tags:c/c++   点击:(17)  评论:(0)  加入收藏
1.字符串数组+初始化char s1[]="array"; //字符数组char s2[6]="array"; //数组长度=字符串长度+1,因为字符串末尾会自动添&lsquo;\0&lsquo;printf("%s,%c\n",s1,s2[2]);...【详细内容】
2021-12-08  灯-灯灯    Tags:C语言   点击:(46)  评论:(0)  加入收藏
函数调用约定(Calling Convention),是一个重要的基础概念,用来规定调用者和被调用者是如何传递参数的,既调用者如何将参数按照什么样的规范传递给被调用者。在参数传递中,有两个很...【详细内容】
2021-11-30  小智雅汇    Tags:函数   点击:(19)  评论:(0)  加入收藏
一、问题提出问题:把m个苹果放入n个盘子中,允许有的盘子为空,共有多少种方法?注:5,1,1和1 5 1属同一种方法m,n均小于10二、算法分析设f(m,n) 为m个苹果,n个盘子的放法数目,则先对...【详细内容】
2021-11-17  C语言编程    Tags:C语言   点击:(46)  评论:(0)  加入收藏
一、为什么需要使用内存池在C/C++中我们通常使用malloc,free或new,delete来动态分配内存。一方面,因为这些函数涉及到了系统调用,所以频繁的调用必然会导致程序性能的损耗;另一...【详细内容】
2021-11-17  深度Linux    Tags:C++   点击:(37)  评论:(0)  加入收藏
OpenCV(Open Source Computer Vision Library)是一个(开源免费)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android、ios等操作系统上,它轻量级而且高效---由一系列...【详细内容】
2021-11-11  zls315    Tags:C#   点击:(50)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条