操作sqlite数据库之前你必须了解:
ADO.NET、数据提供程序等知识点
,以下简单介绍。
Microsoft.Data.Sqlite 官方链接:
https://learn.microsoft.com/zh-cn/dotnet/standard/data/sqlite/parameters
ADO.NET是微软公司提供的一款全新的数据库访问技术,是在.NET Framework中负责数据访问的类库集;
可以将ADO.NET比喻为数据库应用程序和数据源之间的桥梁,提供了一个面向对象的数据访问架构;
System.Data.SQLite 的一个优点是它是由 SQLite 团队开发的,该团队已声明长期致力于支持它。支持多种数据类型,比较旧
优势:
可以在数据源完全断开连接的情况下,对数据进行更新修改,再将数据的更新情况返回至数据源。这样可以减少由于数据库连接过多而引起服务器资源被占用的情况。.
ADO.NET框架封装了访问Sqlite数据库的操作,位于
Microsoft.Data.Sqlite
命名空间中。Microsoft.Data.Sqlite 是用于 SQLite 的轻型
ADO.NET
提供程序。 用于 SQLite 的
Entity Framework Core
提供程序就是基于此库而构建。 但它还可以单独使用,也可以与其他数据访问库一起使用。
C#代码中使用时候 需要引入Microsoft.Data.Sqlite命名空间。
注意:用于 SQLite 的
Entity Framework Core
提供程序就是基于此库而构建。 但
Microsoft.Data.Sqlite
还可以单独使用,也可以与其他数据访问库一起使用。
SQLite 字段数据类型
一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。
SQLite具有以下五种数据类型:
1.NULL:空值。
2.INTEGER:带符号的整型,具体取决有存入数字的范围大小 bool。
3.REAL:浮点数字,存储为8-byte IEEE浮点数。
4.TEXT:字符串文本。
5.BLOB:二进制对象。
https://learn.microsoft.com/zh-cn/dotnet/standard/data/sqlite/types
ADO.NET体系结构
在ADO.NET中,用于访问和操作数据库的两种主要组件:
.NET Framework数据提供程序、数据集DataSet
。
1,.NET Framework数据提供程序
是专为数据操作设计的组件,用于处理不同的数据源,支持访问特定数据库、执行SQl命令和检索结果;
它为不同的数据提供程序(Data Providers)对象,其中主要的四类如下:
Data Providers:个人理解为数据库管理员,桌面软件和数据库之间的那一层。翻译为:数据提供器、数据提供程序。
2,数据集DataSet
DataSet 对象是一个存在于内存中的
数据库
,在 ADO.NET 中处于核心地位
。是用于在内存中缓存来自数据源的数据的一个类,包含一个或多个DataTable对象的集合。
注意:WPF 绑定datatable时, 是绑定datatable.defalutView.
bool
validauer;
using
(
var
connection =
Getconntion())
using
(
var
command=
new
SqliteCommand())
connection.Open();
command.Connection
=
connection;
command.CommandText
=
"
select * from [userinfo] where username=@username and password=@password
"
;
command.Parameters.Add(
"
@username
"
, SqliteType.Text);
command.Parameters[
"
@username
"
].Value =
credential.UserName;
//
command.Parameters.Add("@username", SqlDbType.VarChar).Value = credential.UserName;
command.Parameters.Add(
"
@password
"
, SqliteType.Text).Value =
credential.Password;
validauer
= command.ExecuteScalar() ==
null
?
false
:
true
;
return
validauer;
using Microsoft.Data.SqlClient;
using Microsoft.Data.Sqlite;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spider.Repositories
public abstract class RepositoryBase
private readonly string _connectionstring;
public RepositoryBase()
_connectionstring = ConfigurationManager.ConnectionStrings["SpiderString2"].ConnectionString;
public SqliteConnection Getconntion()
return new SqliteConnection(_connectionstring);