代码编织梦想

**

安装数据库包

**
在使用 SQLite 数据库时,你需要安装适当的 NuGet 包来提供与 SQLite 的集成。
1.打开 Visual Studio 中的你的项目
2.在顶部菜单栏中选择 “项目” -> “管理 NuGet 包”
3.在 NuGet 管理器中搜索 “System.Data.SQLite”
4.找到适合你项目的 SQLite 包,并点击安装
在这里插入图片描述

数据库类方法

//头文件
using Microsoft.Data.Sqlite;
using System.Data.SQLite;
 public static class MySqLite//数据库类
 {
     static string DbPath = @"D:\C#_program\北理测试1\北理测试1\北理测试1\北理测试\PowerField\bin\data";
       
     public static void ExecuteNonQuery(string sql, string dbName = "PowerField.db")
     {
          
         using (var connection = CreateDatabaseConnection(dbName))
         {
  
             connection.Open();
             using (var transaction = connection.BeginTransaction())
             {
                 try
                 {
                     using (var command = connection.CreateCommand())
                     {
                         command.CommandText = sql;
                         command.ExecuteNonQuery();
                     }
                     transaction.Commit();
                 }
                 catch (Exception ex)
                 {
                     Console.WriteLine("Error executing SQL: " + ex.Message);
                     transaction.Rollback();
                 }
             }
         }
     }

     public static void ExecuteQuery(string sql, string dbName = "PowerField.db")
     {
         Console.WriteLine("1111111111");
         using (var connection = CreateDatabaseConnection(dbName))
         {
             connection.Open();
             using (var transaction = connection.BeginTransaction())
             {
                 try
                 {
                     using (var command = connection.CreateCommand())
                     {
                         command.CommandText = sql;
                         using (var reader = command.ExecuteReader())
                         {
                            //数据操作


                         }
                     }
                     transaction.Commit();
                 }
                 catch (Exception ex)
                 {
                     Console.WriteLine("Error executing SQL: " + ex.Message);
                     transaction.Rollback();
                 }
             }
         }
     }

     public static SQLiteConnection CreateDatabaseConnection(string dbName)
     {
       if (!string.IsNullOrEmpty(DbPath) && !Directory.Exists(DbPath))
             Directory.CreateDirectory(DbPath);
         var dbFilePath = System.IO.Path.Combine(DbPath, dbName);
         return new SQLiteConnection("DataSource = " + dbFilePath);
     }

   
//改
     public static void UpdateData(string name, string can1, string can2, string can3, string can4, string can5, string dbName = "PowerField.db")//改
     {
         string sql = "UPDATE weili_canshu SET can1 = @can1,can2 = @can2,can3 = @can3,can4 = @can4,can5 = @can5 WHERE name = @name";

         // 创建数据库连接
         using (var connection = CreateDatabaseConnection(dbName))
         {
             connection.Open(); // 打开数据库连接

             // 开始事务
             using (var transaction = connection.BeginTransaction())
             {
                 try
                 {
                     // 创建命令对象
                     using (var command = connection.CreateCommand())
                     {
                         command.CommandText = sql;

                         // 添加参数
                         command.Parameters.AddWithValue("@name", name);
                         command.Parameters.AddWithValue("@can1", can1);
                         command.Parameters.AddWithValue("@can2", can2);
                         command.Parameters.AddWithValue("@can3", can3);
                         command.Parameters.AddWithValue("@can4", can4);
                         command.Parameters.AddWithValue("@can5", can5);
                         Console.WriteLine("SQL 语句: " + command.CommandText);
                         // 执行命令
                         int rowsAffected = command.ExecuteNonQuery();

                         // 提交事务
                         transaction.Commit();

                         Console.WriteLine($"成功更新 {rowsAffected} 行数据。");
                     }
                 }
                 catch (Exception ex)
                 {
                     Console.WriteLine("执行 SQL 出错: " + ex.Message);
                   //  transaction.Rollback(); // 发生异常时回滚事务
                 }
             }
         }
     }
   //增
     public static void InsertData(string name, string c1,string c2, string c3, string c4, string c5,string id, string dbName = "PowerField.db")
     {
         string sql = "INSERT INTO weili_canshu (name,can1,can2,can3,can4,can5,id) VALUES (@name, @can1, @can2, @can3, @can4, @can5, @id)";

         // 创建数据库连接
         using (var connection = CreateDatabaseConnection(dbName))
         {
             connection.Open(); // 打开数据库连接

             // 开始事务
             using (var transaction = connection.BeginTransaction())
             {
                 try
                 {
                     // 创建命令对象
                     using (var command = connection.CreateCommand())
                     {
                         command.CommandText = sql;

                         // 添加参数
                         command.Parameters.AddWithValue("@name", name);
                         command.Parameters.AddWithValue("@can1", c1);
                         command.Parameters.AddWithValue("@can2", c2);
                         command.Parameters.AddWithValue("@can3", c3);
                         command.Parameters.AddWithValue("@can4", c4);
                         command.Parameters.AddWithValue("@can5", c5);
                         command.Parameters.AddWithValue("@id", id);
                         // 执行命令
                         int rowsAffected = command.ExecuteNonQuery();

                         // 提交事务
                         transaction.Commit();

                         Console.WriteLine($"成功插入 {rowsAffected} 行数据。");
                     }
                 }
                 catch (Exception ex)
                 {
                     Console.WriteLine("执行 SQL 出错: " + ex.Message);
                     transaction.Rollback(); // 发生异常时回滚事务
                 }
             }
         }
     }
//删
   public static void DeleteData(string x)
   {
    //   string x = DamangeAssessmentWarhead.Text;
       // 创建数据库连接
       var connection = MySqLite.CreateDatabaseConnection("PowerField.db");
       connection.Open();

       // 开始事务
       SQLiteTransaction transaction = connection.BeginTransaction();

       try
       {
           // 创建命令对象
           SQLiteCommand command = connection.CreateCommand();
           command.CommandText = "DELETE FROM weili_canshu WHERE name ='" + x + "'";//当name=x时删除该条数据

           // 执行命令并获取受影响的行数
           int rowsAffected = command.ExecuteNonQuery();

           // 提交事务
           transaction.Commit();
       }
       catch (Exception ex)
       {
           // 如果出现异常,回滚事务
           transaction.Rollback();
           Console.WriteLine("错误: " + ex.Message);
       }
       finally
       {
           // 关闭连接
           connection.Close();
           MessageBox.Show("删除成功!");
       }
     //  DamangeAssessmentWarhead.Items.Remove(x);
   }


 }
 //调用ExecuteQuery(查)与ExecuteNonQuery(增删改)
  //例如 MySqLite.ExecuteQuery("SELECT * FROM weili_canshu");//直接写mysql查询语句
  //也可以自定义函数,调用方便 DeleteData();InsertData();等方法

一般查询数据库都要进行其他操作,所以查询一般写在类方法外面

//数据库——查
 var connection = MySqLite.CreateDatabaseConnection("PowerField.db");
 connection.Open();
 var command = connection.CreateCommand();
 command.CommandText = "SELECT * FROM weili_canshu";
 var reader = command.ExecuteReader();
 while (reader.Read())//read既是所读的一条数据,reader.GetString(0)代表数据的第一个值
 {  
int id= reader.GetInt32(0);
    string name = reader.GetString(1);
     int age= reader.GetInt32(2);
   //id name age 数据读到了
    Console.WriteLine(name);//数据已得到,可以根据自己情况进行数据处理
      Console.WriteLine(age.toString());
 }
 connection.Close();
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46657636/article/details/138998872

使用C#进行数据库增删改查ADO.NET(一)-爱代码爱编程

     这节讲一下如何使用C#进行数据库的增删改查操作,本节以SQL Server数据库为例。     .NET 平台,使用ADO.NET 作为与数据库服务器的桥梁,我们通过ADO.NET就可以使用C#语言操作数据库,它的命名空间在System.Data下,要访问SQL Server数据库,就要引用其下的System.Data.SqlClient空间,

c#数据库增删改查_没人爱吃巧克力的博客-爱代码爱编程

using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Ref

c# 数据库增删改查_c#怎么实现数据库的增删改查-爱代码爱编程

class Program { static void Main(string[] args) { string connectStr = "server=localhost;port=3306;database=xxxxdb;user=root;password=xxxxxx;

数据库sql编写规范-爱代码爱编程

 编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目 2 SQL书写规范 3 SQL编写原则 软件全套精华资料包清单部分文件列表: 工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书,概要设计说明书,技术解决方案,数据库设计说明

spring-爱代码爱编程

1. 微服务架构 1.1 单体应用架构---内部项目【OA WMS等】 将项目所有模块(功能)打成jar或者war,然后部署一个进程 优点: 1:部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可。 2:技术单一:项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发(ssm+数据库)。 缺点:

mongodb聚合运算符:$zip-爱代码爱编程

MongoDB聚合运算符:$zip 文章目录 MongoDB聚合运算符:$zip语法使用举例矩阵转置过滤并保留索引 $zip用于将输入数组的元素重新组合转换为新的数组,重组转换的的规则

【golang】 mysql 在 go 语言驱动程序中常用参数-爱代码爱编程

文章目录 前言一、参数解释二、代码实现四、总结 前言 在 Go 语言中,我们使用数据库驱动程序来连接和操作数据库。对于 MySQL,我们通常使用 go-sql-driver/mysql 驱动程序

centos8+mysql8.0.26+skywalking9.7.0数据清理机制-爱代码爱编程

(01)application.yml core: selector: ${SW_CORE:default} default: # Mixed: Receive agent data, Level 1 aggregate,

python学习-爱代码爱编程

核心代码 # 导入pandas库 import pandas as pd # 导入正则表达式包 import re # 指定Excel文件的路径,这个data.xlsx表为原始表,表内有40个sheet子表 file_p

生产报表工具pi datalink 与 行列视之间的区别-爱代码爱编程

PI DataLInk 是剑维PI SYStem中的一个报表工具,安装在Excel中,作为一个插件提供数据定义和采集服务,顾名思义,PI-DataLink是PI 实时数据库独有的报表工具,这也限定了她的应用范围,随着国产化的开展,也许对于这款报表工具其应用空间会进一步压缩。 行列视,全名“行列视生产数据应用系统”,行列视品牌所面对的业务范围远远超越了PI

mysql存储过程添加二十万条数据日常练习-爱代码爱编程

1.DDL CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT, createDate DATE NOT NULL, userName VARCHAR(50) NOT NULL, phone VARCHAR(15), age INT, sex C

centos 使用docker安装mysql-爱代码爱编程

1. 安装docker a. 安装docker的依赖包 sudo yum install -y yum-utils b. 设置docker的稳定仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo c. 安装doc

linux中查找某个文件或文件夹-爱代码爱编程

查找文件夹 在Linux中,可以使用以下几种方法来查找某个文件夹: 使用find命令: find /path/to/search -type d -name "folder_name" 该命令将会在指定的路径(/path/to/search)中查找名称为"folder_name"的文件夹。此命令会递归地搜索子文件夹。 使用ls命令结合gre

【系统架构师】-爱代码爱编程

1、REST与RPC区别 1、REST 相对于 RPC 更为轻量化,RPC 服务提供方与调用方接口依赖太高,会导致编码格式的复杂性,而 REST 服务提供方和调用方的依赖只是依靠定义好的规则,不存依赖问题。 2、REST 服务很好的实现了跨平台,任何一个语言(JavaScript、Vue、HTML5、Bootstap 等)的调用方都可以根