拓冰建站拓冰建站
首页 / 资讯中心 / 正文

【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
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门