基于.NET Core3.1的SQLiteHelper增删改帮助类
安装驱动包
install-package Microsoft.Data.Sqlite -version 3.1.7
install-package System.Data.SQLite.Core -version 1.0.113.1
帮助类如下代码:
using Microsoft.Data.Sqlite;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.SQLite;
using System.Linq;
using System.Threading.Tasks; namespace WebApplication1.Models
{
public class SQLiteHelper
{
private static string connectionString = string.Format(@"Data Source={0}", "D:\\TEMP\\abc.sqlite3.db"); /// <summary>
/// 适合增删改操作,返回影响条数
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql, params SqliteParameter[] parameters)
{
using (SqliteConnection conn = new SqliteConnection(connectionString))
{
using (SqliteCommand comm = conn.CreateCommand())
{
try
{
conn.Open();
comm.CommandText = sql;
comm.Parameters.AddRange(parameters);
return comm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if (conn != null && conn.State != ConnectionState.Closed)
conn.Close();
} }
}
} /// <summary>
/// 查询操作,返回查询结果中的第一行第一列的值
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static object ExecuteScalar(string sql, params SqliteParameter[] parameters)
{
using (SqliteConnection conn = new SqliteConnection(connectionString))
{
using (SqliteCommand comm = conn.CreateCommand())
{
try
{
conn.Open();
comm.CommandText = sql;
comm.Parameters.AddRange(parameters);
return comm.ExecuteScalar();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if (conn != null && conn.State != ConnectionState.Closed)
conn.Close();
}
}
}
} /// <summary>
/// 执行ExecuteReader
/// </summary>
/// <param name="sqlText">SQL</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static SqliteDataReader ExecuteReader(string sql, params SqliteParameter[] parameters)
{
SqliteConnection conn = null;
try
{
//SqlDataReader要求,它读取数据的时候有,它独占它的SqlConnection对象,而且SqlConnection必须是Open状态
conn = new SqliteConnection(connectionString);//不要释放连接,因为后面还需要连接打开状态
SqliteCommand cmd = conn.CreateCommand();
conn.Open();
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
//CommandBehavior.CloseConnection当SqlDataReader释放的时候,顺便把SqlConnection对象也释放掉
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
conn.Close();
}
return null;
} /// <summary>
/// Adapter调整,查询操作,返回DataTable
/// </summary>
/// <param name="sql">SQL</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static DataTable ExecuteDataTable(string sql, params SqliteParameter[] parameters)
{
using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(sql, connectionString))
{
DataTable dt = new DataTable();
adapter.SelectCommand.Parameters.AddRange(parameters);
adapter.Fill(dt);
return dt;
}
} }
}
基于.NET Core3.1的SQLiteHelper增删改帮助类的更多相关文章
- 基于AT UI实现表格的增删改查遇到的坑
基于AT UI实现表格的增删改查遇到的坑 坑一.表格数据加载的渲染报错 报错:Error in render: "TypeError: Cannot read property 'isChe ...
- 基于SSM之Mybatis接口实现增删改查(CRUD)功能
国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...
- 最简单的基于JSP标准标签库的增删改查
创建数据库中的表:CREATE TABLE `websites` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL DE ...
- 基于Django框架对MongoDB实现增删改查
在上一篇中,咱们已经实现了Scrapy框架爬取数据,并且存储到Mongodb数据库, 接下来呢,,,,,,,,,,,,, 咱们就要对这些数据进行操作. 目标:从Mongodb数据库取出数据,通过Dja ...
- pdo 封装增删改查类
<?php/** * Class model * @package Core\lib */class model{ protected $pdo = null; // 连接数据库 ...
- MongoDB-JAVA-Driver 3.2版本常用代码全整理(1) - 增删改
MongoDB的3.x版本java驱动相对2.x做了全新的设计,类库和使用方法上有很大区别.例如用Document替换BasicDBObject.通过Builders类构建Bson替代直接输入$命令等 ...
- Django之model基础(增删改查)
一.ORM 映射关系 表名 <-------> 类名 字段 <-------> 属性 表记录 <------->类实例对象二.创建表(建立模型) 在创建表之前的准备 ...
- Day 18 :面向对象[基础,继承,组合]类的增删改查
有的人说,编程有3种范式: 1.面向过程:就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. 2.面向函数:面向函数是面向过程的升级版,也就是把每个 ...
- python之类与对象属性的增删改查
类属性与对象属性的增删改查 类属性的增删改查 class School: """ 文档 """ Teacher = "老王&quo ...
- JdbcTemplate实现增删改查操作
JdbcTemplate介绍 为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架,Spring Boot Spring Data-JP ...
随机推荐
- Less 1-3
LESS-1 首先确认一下是否存在注入,加上?id=1,能够显示数据,然后加一个',出现报错,这样就说明存在注入点.接下来进行报错注入. 输入 ' and updatexml(1,concat(0x7 ...
- CF14D题解
CF14D Two Paths题解 题目链接 传送门 题意简述 给定一棵树,找出两条不经过相同点的最长路径,使得他们的长度乘积最大. 题目分析 首先,如果在一棵树上,两条路径没有共同的点,那么这两条路 ...
- linux中安装doker
1.更新yum为最新的 yum -y update 2.卸载旧版的docker sudo yum remove -y docker* 3.安装需要的软件包 yum install -y yum-uti ...
- (jmeter笔记) websocket接口测试
1.在进程选择WebSocket Sampler 2.Websocket Sampler 界面 webserver Server Name or IP:输入连接的websocket服务器ip Port ...
- linux run/media/wang/centos_磁盘爆满
在使用iso安装了linux系统后,会有个 /run/media/wang/CentOS 7 x86_64 无法删除,这个是我们安装程序时的安装驱动, 登陆用户后将他卸载就可
- 使用vue渲染大量数据时应该怎么优化?
Object.freeze 适合一些 big data的业务场景.尤其是做管理后台的时候,经常会有一些超大数据量的 table,或者一个含有 n 多数据的图表,这种数据量很大的东西使用起来最明显的感受 ...
- HIVE 调优思路和实践
1,数据存储调优 1.1 设置压缩: 设置中间数据/输出结果压缩传输,使用snappy格式. hive-site.xml: set hive.exec.compress.output = true # ...
- mysql 优化表空间报错Creating index 'PRIMARY' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again
背景:mysql数据库中有几个表的碎片率太高,浪费了存储空间且降低了读写效率,需要整理. mysql版本:5.6 先用optimize table 试试. 也执行了很久.但是结束后,data_free ...
- CCF-CSP准备
dfs序,unique vector sort(que+1,que+1+cnt); len = unique(que+1,que+cnt+1)-que-1; for(int i = 1;i <= ...
- (0709) Linux-命令(scp,tar) zip
(1) scp .bashrc root@192.168.1.6:vnc://cfy-hp-notebook-pc.local (2) tar -czvf a.tar.gz b ...