C# SQlite操作方法小结
作者:雪岢奇 时间:2021-10-01 15:56:09
本文实例分析了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#程序设计有所帮助。
标签:C#,SQlite
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
IDEA 2021.3 使用及idea2021.3.1激活使用方法
2021-06-06 03:49:38
![](https://img.aspxhome.com/file/2023/0/73030_0s.jpg)
C# datagrid非常规方法实现添加合并列
2023-02-08 07:31:00
![](https://img.aspxhome.com/file/2023/3/71743_0s.jpg)
基于Class.forName()用法及说明
2021-06-20 19:09:30
![](https://img.aspxhome.com/file/2023/7/61877_0s.png)
JetCache 缓存框架的使用及源码解析(推荐)
2021-07-23 12:21:25
![](https://img.aspxhome.com/file/2023/2/64402_0s.png)
Java 把json对象转成map键值对的方法
2023-08-25 01:58:14
Java毕业设计实战之在线高中考试系统的实现
2021-07-04 06:15:20
![](https://img.aspxhome.com/file/2023/3/71813_0s.jpg)
为什么Spring官方推荐的@Transational还能导致生产事故
2022-02-13 15:54:37
![](https://img.aspxhome.com/file/2023/8/79228_0s.png)
Java关键字this与super详解用法
2023-05-28 05:28:04
java实现微信小程序登录态维护的示例代码
2023-08-22 18:29:46
SpringMVC中事务是否可以加在Controller层的问题
2021-12-09 01:20:15
C#中this指针的用法示例
2021-07-21 14:12:24
Unicode、UTF-8 和 ISO8859-1区别解析
2021-06-02 07:45:57
SpringBoot Java后端实现okhttp3超时设置的方法实例
2022-11-06 04:56:03
深入讲解我们说的CAS自旋锁到底是什么
2022-05-21 14:43:08
字符串内存驻留机制详解示例
2023-09-24 04:09:32
C#中在WebClient中使用post发送数据实现方法
2023-05-01 00:03:54
mybatis中使用InsertProvider注解报错解决全过程
2021-06-25 18:36:42
Java ThreadLocal类使用详解
2022-08-04 05:29:34
![](https://img.aspxhome.com/file/2023/4/71014_0s.png)
Java 获取当前系统时间的三种方法
2023-11-21 12:51:51
解决nacos升级spring cloud 2020.0无法使用bootstrap.yml的问题
2021-12-02 19:44:29
![](https://img.aspxhome.com/file/2023/3/61773_0s.png)