首页 > 数据库 >【数据库】C#使用ADO.NET操作sqlite数据库 --Microsoft.Data.Sqlite

【数据库】C#使用ADO.NET操作sqlite数据库 --Microsoft.Data.Sqlite

时间:2022-09-20 04:11:05浏览次数:112  
标签:sqlite C# 数据库 command ADO using NET Data

概述

操作sqlite数据库之前你必须了解:ADO.NET、数据提供程序等知识点,以下简单介绍。

ADO.NET是微软公司提供的一款全新的数据库访问技术,是在.NET Framework中负责数据访问的类库集;
可以将ADO.NET比喻为数据库应用程序和数据源之间的桥梁,提供了一个面向对象的数据访问架构;
优势:
可以在数据源完全断开连接的情况下,对数据进行更新修改,再将数据的更新情况返回至数据源。这样可以减少由于数据库连接过多而引起服务器资源被占用的情况。.

 ADO.NET框架封装了访问Sqlite数据库的操作,位于Microsoft.Data.Sqlite命名空间中。

C#代码中使用时候 需要引入Microsoft.Data.Sqlite命名空间。 

 注意:用于 SQLite 的 Entity Framework Core 提供程序就是基于此库而构建。 但Microsoft.Data.Sqlite还可以单独使用,也可以与其他数据访问库一起使用。

 

ADO.NET体系结构

在ADO.NET中,用于访问和操作数据库的两种主要组件:.NET Framework数据提供程序、数据集DataSet

1,.NET Framework数据提供程序( 数据库管理员)

是专为数据操作设计的组件,用于处理不同的数据源,支持访问特定数据库、执行SQl命令和检索结果;
它为不同的数据提供程序(Data Providers)对象,其中主要的四类如下:

Data Providers:个人理解为数据库管理员,桌面软件和数据库之间的那一层。翻译为:数据提供器、数据提供程序。

 

 

2,数据集DataSet

DataSet 对象是一个存在于内存中的数据库,在 ADO.NET 中处于核心地位。是用于在内存中缓存来自数据源的数据的一个类,包含一个或多个DataTable对象的集合。


 更多内容请查看

访问sqlite数据库的流程图

ADO.Net访问mysql\sqlite\sql等数据库 流程都一样,只是相应类名前缀不同。

 

 

 

 具体代码

案例一:Login界面

        public bool AuthenticateUser(NetworkCredential credential)
        {
            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);
        }
    }
}

 

标签:sqlite,C#,数据库,command,ADO,using,NET,Data
From: https://www.cnblogs.com/cdaniu/p/16709722.html

相关文章

  • C#多线程 操作UI问题
    C#多线程操作UI的简单写法:KeledoSuperPlus privateTaskSchedulermpr_ts_UIContext;privatevoidbutton1_Click(objectsender,EventArgse){......
  • CF round 812 div2 A-D 题解
    首先第一题TravelingSalesManProblem,给出一些坐标,就是问从原点出发,然后收集所有的点,问最少需要多少次移动这个就是求收集完那曼哈顿距离,这个距离稍加观察可以发现,就是......
  • 【数据库】OLE-DB、ODBC、ADO.NET、ADO、sql sever .net、 sqlite .net是什么
    概览OLE-DB、ODBC、ADO.NET、ADO、sqlsever.net、sqlite .net面像对象的数据库访问技术,可以将他们比喻为数据库应用程序和数据源之间的桥梁ODBC:访问关系型数据库OL......
  • MAUI页面导航-await Shell.Current.GoToAsync();
    示例:Shell.Current.GoToAsync("..");//导航到前一页Shell.Current.GoToAsync(nameof(NotePage));//导航到Note页Shell.Current.GoToAsync($"{nameof(NotePage)}?{......
  • 【C#】无损转换Image为Icon
     https://www.cnblogs.com/ahdung/p/ConvertToIcon.html 备忘【C#】无损转换Image为Icon如题,市面上常见的方法是:varhandle=bmp.GetHicon();//得到图标句柄......
  • C++ 头文件接口设计浅谈
    C++头文件接口设计浅谈作者:独钓寒江雪链接:https://zhuanlan.zhihu.com/p/338227526对于很多出入门C++的程序员来说,大部门新手都是在用别人封装好的库函数,却没有尝试过......
  • Codeforces Round #640 (Div. 4) C. K-th Not Divisible by n
    CodeforcesRound#640(Div.4)翻译岛田小雅C.K-thNotDivisiblebyn出题人MikeMirzayanov有两个正整数\(n\)和\(k\),输出第\(k\)个不能被\(n\)整除的正整......
  • 实验二:Open vSwitch虚拟交换机实践
    基础要求提交a)/home/用户名/学号/lab2/目录下执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果截图;b)/home/用户名/学号/lab2/目录下开启MininetCLI并执行p......
  • react useMemo、useEffect和 useCallback区别及与 vue 对比
    reactuseMemo和useEffect和useCallbackuseEffecteffect只能在DOM更新后触发useMemo传入useMemo的函数会在渲染期间执行,即在DOM更新前触发的,就像官方所说的,类比......
  • vue3 watch和 watchEffect对比
    watch和watchEffectwatchwatch显式指定依赖数据,依赖数据更新时执行回调函数具有一定的惰性(lazy),第一次页面展示的时候不会执行,只有数据变化的时候才会执行(设置i......