首页/新闻资讯/正文详情

【C#桌面客户端系列学习-4】封装数据库基础操作工具类(CURD)

发布时间:2026/9/24 14:37:38 来源:云帆数科 栏目:资讯中心
【C#桌面客户端系列学习-4】封装数据库基础操作工具类(CURD)
目录一、安装MySQL驱动二、数据库连接配置三、数据库工具类封装1、创建MySqlHelper类2、验证创建成功四、CURD操作示例一、安装MySQL驱动在VS2022中右键项目 → 管理 NuGet 程序包搜索并安装“MySql.Data”这是MySQL官方的ADO.NET驱动安装后就可以直接使用了。二、数据库连接配置在app.config的configuration节点内添加数据库配置信息。connectionStrings add nameMyDbConn connectionStringServerlocalhost;Port3306;Database你的数据库名;Uid你的用户名;Pwd你的密码; providerNameMySql.Data.MySqlClient / /connectionStrings字段说明ServerMySQL服务器地址Port数据库连接端口默认是3306Database要连接的数据库名Uid/PwdMySQL的用户名和密码注意providerName必须是MySql.Data.MySqlClient少了这个配置管理器可能读不到。三、数据库工具类封装MySqlHelper工具类是一个静态工具类直接创建一个普通的C#类文件就行。创建步骤在解决方案资源管理器中右键你的项目 →添加→类。命名MySqlHelper.cs这里我没有写命名空间因为不写命名空间这样它就在全局命名空间下在任何窗体里可以直接使用MySqlHelper类不用额外再using。1、创建MySqlHelper类using System; using System.Configuration; using System.Data; using MySql.Data.MySqlClient; // 数据库工具类 public static class MySqlHelper { // 从 App.config 读取连接字符串 private static readonly string connectionString ConfigurationManager.ConnectionStrings[MyDbConn].ConnectionString; /// summary /// 获取一个新的数据库连接调用方负责释放 /// /summary public static MySqlConnection GetConnection() { return new MySqlConnection(connectionString); } /// summary /// 执行增删改返回受影响的行数 /// /summary public static int ExecuteNonQuery(string sql, params MySqlParameter[] parameters) { using (var connection GetConnection()) { connection.Open(); using (var command new MySqlCommand(sql, connection)) { if (parameters ! null) command.Parameters.AddRange(parameters); return command.ExecuteNonQuery(); } } } /// summary /// 执行查询返回 DataTable /// /summary public static DataTable ExecuteDataTable(string sql, params MySqlParameter[] parameters) { using (var connection GetConnection()) { connection.Open(); using (var command new MySqlCommand(sql, connection)) { if (parameters ! null) command.Parameters.AddRange(parameters); var adapter new MySqlDataAdapter(command); var dataTable new DataTable(); adapter.Fill(dataTable); return dataTable; } } } /// summary /// 执行查询返回第一行第一列适合 COUNT、SUM、单个字段 /// /summary public static object ExecuteScalar(string sql, params MySqlParameter[] parameters) { using (var connection GetConnection()) { connection.Open(); using (var command new MySqlCommand(sql, connection)) { if (parameters ! null) command.Parameters.AddRange(parameters); return command.ExecuteScalar(); } } } /// summary /// 测试数据库连接是否可用 /// /summary public static bool TestConnection() { try { using (var connection GetConnection()) { connection.Open(); return true; } } catch { return false; } } }2、验证创建成功在任一窗体的按钮事件里写一行测试代码bool ok MySqlHelper.TestConnection(); MessageBox.Show(ok ? 数据库连接正常 : 数据库连接失败);如果弹出“数据库连接正常”说明类创建成功并且数据库也连接成功了。四、CURD操作示例using System; using System.Data; using MySql.Data.MySqlClient; class Program { static void Main(string[] args) { // 1. 查询示例 Console.WriteLine(查询所有用户:); var querySql SELECT * FROM users; var users MySqlHelper.ExecuteDataTable(querySql); foreach (DataRow row in users.Rows) { Console.WriteLine($ID: {row[id]}, Name: {row[name]}, Email: {row[email]}); } // 2. 插入示例参数化查询防止SQL注入 Console.WriteLine(\n插入新用户:); var insertSql INSERT INTO users(name, email, created_at) VALUES(name, email, createdAt); var insertParams new MySqlParameter[] { new MySqlParameter(name, 张三), new MySqlParameter(email, zhangsanexample.com), new MySqlParameter(createdAt, DateTime.Now) }; int affectedRows MySqlHelper.ExecuteNonQuery(insertSql, insertParams); Console.WriteLine($插入成功影响行数: {affectedRows}); // 3. 更新示例 Console.WriteLine(\n更新用户邮箱:); var updateSql UPDATE users SET email newEmail WHERE name name; var updateParams new MySqlParameter[] { new MySqlParameter(newEmail, newzhangsanexample.com), new MySqlParameter(name, 张三) }; affectedRows MySqlHelper.ExecuteNonQuery(updateSql, updateParams); Console.WriteLine($更新成功影响行数: {affectedRows}); // 4. 删除示例 Console.WriteLine(\n删除用户:); var deleteSql DELETE FROM users WHERE name name; var deleteParam new MySqlParameter(name, 张三); affectedRows MySqlHelper.ExecuteNonQuery(deleteSql, deleteParam); Console.WriteLine($删除成功影响行数: {affectedRows}); } }C#桌面客户端系列学习可浏览专题学习https://blog.csdn.net/qq_25285531/category_13213077.htmlhttps://blog.csdn.net/qq_25285531/category_13213077.html

相关推荐

ParlAI 中的 Beat The Bot:一个让智能体在线学习交互的 Messenger 聊天机器人游戏
ParlAI 中的 Beat The Bot:一个让智能体在线学习交互的 Messenger 聊天机器人游戏

NLP人工智能深度学习 【免费下载链接】ParlAI A framework for training and evaluating AI models on a variety of openly available dialogue datasets. 项目地址: https://gitcode.com/gh_mirrors/pa/ParlAI 点击查看 免费下载 导读 本文聚焦 ParlAI 仓库中 p… · 2026/9/24 14:37:32

从写死到可配置:CodeGuide 仓库 API 网关第16章——Netty 网络通信配置提取实战解析
从写死到可配置:CodeGuide 仓库 API 网关第16章——Netty 网络通信配置提取实战解析

从写死到可配置:CodeGuide 仓库 API 网关第16章——Netty 网络通信配置提取实战解析 【免费下载链接】CodeGuide :books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点… · 2026/9/24 14:37:32

RunAnywhere React Native 接入 QHexRT:在 Snapdragon Hexagon NPU 上运行本地 LLM/VLM/STT/TTS 的完整指南
RunAnywhere React Native 接入 QHexRT:在 Snapdragon Hexagon NPU 上运行本地 LLM/VLM/STT/TTS 的完整指南

AI模型推理服务推理引擎本地部署多模态 【免费下载链接】runanywhere-sdks Production ready toolkit to run AI locally 项目地址: https://gitcode.com/gh_mirrors/ru/runanywhere-sdks 点击查看 免费下载 导读 runanywhere/qhexrt 是 RunAnywhere React Native… · 2026/9/24 14:37:32

Objective-C 2.0 ANTLR 4 文法:单步与双步预处理解析架构实战指南
Objective-C 2.0 ANTLR 4 文法:单步与双步预处理解析架构实战指南

编程语言编译器开发工具 【免费下载链接】grammars-v4 Grammars written for ANTLR v4; expectation that the grammars are free of actions. 项目地址: https://gitcode.com/gh_mirrors/gr/grammars-v4 点击查看 免费下载 导读 本指南围绕 grammars-v4 仓库中的… · 2026/9/24 15:10:08

cleos validate signatures 命令详解:EOS 交易签名验证与公钥恢复实战
cleos validate signatures 命令详解:EOS 交易签名验证与公钥恢复实战

区块链 【免费下载链接】eos An open source smart contract platform 项目地址: https://gitcode.com/gh_mirrors/eo/eos 点击查看 免费下载 本指南完整讲解 EOS 节点工具 cleos 中 validate signatures 子命令的用法、参数与底层实现。该命令不依赖钱包、不上链… · 2026/9/24 15:10:08

Yii 2 框架设计决策指南:路径别名、消息翻译、异常处理等 8 项核心约定及其源码依据
Yii 2 框架设计决策指南:路径别名、消息翻译、异常处理等 8 项核心约定及其源码依据

后端Web框架 【免费下载链接】yii2 Yii 2: The Fast, Secure and Professional PHP Framework 项目地址: https://gitcode.com/gh_mirrors/yi/yii2 点击查看 免费下载 导读:本文基于 Yii 2 框架内部文档 design-decisions.md(波兰语版&#… · 2026/9/24 15:10:08

KuGouMusicApi源码解析(一):文件名即路由,160个接口如何自动注册到Express
KuGouMusicApi源码解析(一):文件名即路由,160个接口如何自动注册到Express

KuGouMusicApi源码解析(一):文件名即路由,160个接口如何自动注册到Express 【免费下载链接】KuGouMusicApi 酷狗音乐 Node.js API service 项目地址: https://gitcode.com/gh_mirrors/ku/KuGouMusicApi 本文带你深入解析 K… · 2026/9/24 15:10:08

如何修复 Atmosphere 的 010000000000002b 致命错误:完整排障指南
如何修复 Atmosphere 的 010000000000002b 致命错误:完整排障指南

如何修复 Atmosphere 的 010000000000002b 致命错误:完整排障指南 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere 如果你的 Swi… · 2026/9/24 15:10:02

Chat2DB 完整实战指南:40+ 数据库客户端与 AI SQL 工作空间
Chat2DB 完整实战指南:40+ 数据库客户端与 AI SQL 工作空间

Chat2DB 完整实战指南:40 数据库客户端与 AI SQL 工作空间 【免费下载链接】Chat2DB Chat2DB is a free, cross-platform, local-first database client and SQL workspace for developers, DBAs, analysts, and data teams. Connect to 40 databases, manage data, edit and r… · 2026/9/24 15:10:02

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码