c#数据库的增删改查

**

安装数据库包

**

在使用 SQLite 数据库时,你需要安装适当的 NuGet 包来提供与 SQLite 的集成。

1.打开 Visual Studio 中的你的项目

2.在顶部菜单栏中选择 "项目" -> "管理 NuGet 包"

3.在 NuGet 管理器中搜索 "System.Data.SQLite"

4.找到适合你项目的 SQLite 包,并点击安装

数据库类方法

csharp 复制代码
//头文件
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();等方法

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

csharp 复制代码
//数据库------查
 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();
相关推荐
钢铁男儿16 分钟前
C# 接口(什么是接口)
java·数据库·c#
__风__1 小时前
PostgreSQL kv(jsonb)存储
数据库·postgresql
Databend1 小时前
Databend 产品月报(2025年6月)
数据库
描绘一抹色1 小时前
JVM基础01(从入门到八股-黑马篇)
jvm
Little-Hu2 小时前
QML TextEdit组件
java·服务器·数据库
保持学习ing4 小时前
day1--项目搭建and内容管理模块
java·数据库·后端·docker·虚拟机
小老鼠爱大米4 小时前
C# WPF - Prism 学习篇:搭建项目(一)
c#·wpf·prism
宇钶宇夕5 小时前
EPLAN 电气制图:建立自己的部件库,添加部件-加SQL Server安装教程(三)上
运维·服务器·数据库·程序人生·自动化
爱可生开源社区5 小时前
SQLShift 重磅更新:支持 SQL Server 存储过程转换至 GaussDB!
数据库
贾修行5 小时前
SQL Server 空间函数从入门到精通:原理、实战与多数据库性能对比
数据库·sqlserver