C# SQlite操作方法小结
作者:雪岢奇 发布时间:2021-10-01 15:56:09
标签:C#,SQlite
本文实例分析了C# SQlite操作方法。分享给大家供大家参考,具体如下:
最近项目需求用C#保存一些数据,如此先总结一下。需要下载Sqlite 库 SourceForge 链接网址http://sourceforge.net/projects/sqlite-dotnet2/或到官方网http://www.sqlite.org/download.html下载都可以,下载之后安装。在C#项目中添加引用 引入安装目录bin中的System.Data.SQLite.dll。添加命名空间using System.Data.SQLite;便可以在你的项目中
对扩平台的微型数据库SQlite 进行使用了,
主要注意一点是:
数据库若未创建则使用:
SQLiteConnection.CreateFile(databaseName);
数据库已经创建,并要进行访问:
SQLiteConnection m_conn = new SQLiteConnection("DataSource="+m_dbName+";Version=3;New=False;Compress=True;");
下面是项目中封装的操作数据库代码,使用时可稍微修改便可在项目中使用。
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SQLite;
namespace Toolbar
{
public class CSPDatabase
{
protected string m_dbName;
protected string m_tablename;
protected string m_password;
public CSPDatabase(string dbName)
{
m_dbName = dbName;
m_tablename = "MhtInfo";
m_password = "";
}
//Create DataBase
public virtual void Init() { }
public virtual void CreateDataBase() { }
public virtual void OpenDataBase() { }
public virtual void SetPassWord(string password) { }
//Connect DataBase
public virtual void ConnectDataBase() { }
//Create Table
public virtual void CreateTable(string tableName) { }
//Insert Data
public virtual void Insert(string mhtlocation) { }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SQLite;
using System.Windows.Forms;
namespace Toolbar
{
class SqliteDatabase : CSPDatabase
{
private SQLiteConnection m_conn= null;
private SQLiteCommand m_cmd=null;
public SqliteDatabase(string dbName):base(dbName)
{
}
public override void Init()
{
if(m_conn == null)
m_conn = new SQLiteConnection();
m_cmd = new SQLiteCommand();
m_cmd.Connection = m_conn;
}
public override void CreateDataBase()
{
//Create Database
try
{
SQLiteConnection.CreateFile(m_dbName);
Init();
ConnectDataBase();
}
catch (System.Exception e)
{
MessageBox.Show("Create DataBase Failed!");
}
}
public override void OpenDataBase()
{
m_conn = new SQLiteConnection("Data Source="+m_dbName+";Version=3;New=False;Compress=True;");
Init();
ConnectDataBase();
}
public override void SetPassWord(string password)
{
m_password = password;
}
public override void ConnectDataBase()
{
//Connect to DataBase
try
{
SQLiteConnectionStringBuilder connstr = new SQLiteConnectionStringBuilder();
connstr.DataSource = m_dbName;
if(m_password != "")
connstr.Password = m_password;
m_conn.ConnectionString = connstr.ToString();
}
catch (System.Exception e)
{
MessageBox.Show("Fail to Connect to the database");
}
}
//Create Table
public override void CreateTable(string tableName)
{
try
{
m_tablename = tableName;
m_conn.Open();
string sql = "CREATE TABLE " + tableName + "(mhtlocation varchar(20))";
m_cmd.CommandText = sql;
m_cmd.ExecuteNonQuery();
m_conn.Close();
}
catch (System.Exception e)
{
MessageBox.Show("Create Table Failed!");
}
}
public override void Insert(string mhtlocation)
{
try
{
//Insert Data
m_conn.Open();
string sql = "insert into [" + m_tablename + "] values('" + mhtlocation + "')";
m_cmd.CommandText = sql;
m_cmd.ExecuteNonQuery();
m_conn.Close();
}
catch (System.Exception e)
{
MessageBox.Show(e.ToString());
}
}
}
}
希望本文所述对大家C#程序设计有所帮助。


猜你喜欢
- 《Spring Boot Actuator详解与深入应用》预计包括三篇,第一篇重点讲Spring Boot Actuator 1.x的应用与
- 最近几个项目的测试结果,Android无法主动通过调用 webview.loadUrl("javascript:"+ca
- 一、设置Fira_Code字体1.下载字体这里给出github下载链接,点击链接后在README.md中的Download & In
- 1. 概述官方JavaDocsApi: javax.swing.JProgressBar JProgressBar,进度条。以可视化形式显示
- 本文由Markdown语法编辑器编辑完成。1. 需求分析;已知当在调用某一webservice的服务时,如果调用成功,会接受到该服务的返回X
- JDK中的三个基本注解a、@Override:检查子类确实是覆盖了父类的方法。b、@Deprecated:说明已经过时了。c、@Suppre
- 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先
- 前言其实很多人都会碰到文本不对齐,文字不对齐的情况,但是只要不明显被提出,一般都会置之不理。我关注这个问题是因为有个老哥问我倒计时的时候,1
- Spring Boot除了可以打可执行jar包外,也支持传统的war包。本文介绍如何使用Spring Boot构建传统war包。Spring
- 中文乱码问题真的是一个很棘手的问题,特别是从前台传到后台之后,都不知道问题出在哪里了。现在分享解决javaWEB中前后台中文乱码问题的3种方
- 满满的都是坑,因为服务器偷懒让客服端写统一下单,服务器只给了通知的url。微信的支付demo并没有统一下单的代码。读此文前先阅读: http
- 一、线程组 /** * A thread group represents a set of threads. In addition,
- 前言一个说难不难,说简单竟看不出来是哪里问题的一个bug。是的 可能自己能力和经验尚浅无法识别,下面你们能否用火眼金睛一眼让bug原形毕露(
- 一、前言上一篇文章中我们已经Spring Boot 利用注解方式整合 MyBatis,今天我们就来看看,如何利
- java中如何表示圆周率设计一个Shape接口和它的两个实现类Square和Circle。 要求如下(1) Shape接口中有一个抽象方法a
- 使用RestTemplate时报错RestClientException这是自己封装的一个发送请求的方法public Map&l
- 方式一:在所有mapper接口使用@Mapper注解@Mapper(将包中的所有接口都标注为DAO层接口)public interface
- 首先,通过一张最新(2021.11)的编程语言排名图来了解常见的编程语言:从图中可以看出,C++的排名相对于Python、Java、C来说并
- 前言我们经常会被问到这么一个问题:SpringBoot相对于spring有哪些优势呢?其中有一条答案就是SpringBoot自动注入。那么自
- 一、pom.xml引入相关模块web、jpa、thymeleaf、oracle:<dependency> &nbs