ASP.NET |日常开发中连接Mysql数据库增删改查详解

ops/2024/12/19 18:23:33/

在这里插入图片描述
在这里插入图片描述

ASP.NET |日常开发中连接Mysql数据库增删改查详解

  • 前言
  • 一、连接 MySQL 数据库
    • 1.1 安装和引用相关库
    • 1.2 建立数据库连接
  • 二、数据库增删改查操作
    • 2.1 插入数据(Insert)
    • 2.2 查询数据(Select)
    • 2.3 更新数据(Update)
    • 2.4 删除数据(Delete)
  • 结束语
  • 优质源码分享

ASP.NET |日常开发中连接Mysql数据库增删改查详解,在ASP.NET日常开发中,连接MySQL数据库并进行增删改查(CRUD)操作是一个常见的任务。为了实现这一功能,你通常需要使用一个MySQL数据库驱动程序,比如MySql.Data.MySqlClient,它是MySQL官方提供的.NET驱动程序。以下是一个详细的步骤指南,介绍如何在ASP.NET应用程序中连接MySQL数据库并执行CRUD操作。

前言

        在数字浪潮汹涌澎湃的时代,程序开发宛如一座神秘而宏伟的魔法城堡,矗立在科技的浩瀚星空中。代码的字符,似那闪烁的星辰,按照特定的轨迹与节奏,组合、交织、碰撞,即将开启一场奇妙且充满无限可能的创造之旅。当空白的文档界面如同深邃的宇宙等待探索,程序员们则化身无畏的星辰开拓者,指尖在键盘上轻舞,准备用智慧与逻辑编织出足以改变世界运行规则的程序画卷,在 0 和 1 的二进制世界里,镌刻下属于人类创新与突破的不朽印记。

一、连接 MySQL 数据库

1.1 安装和引用相关库

    在ASP.NET项目中连接 MySQL 数据库,首先需要安装MySql.Data库。可以通过 NuGet 包管理器进行安装。安装完成后,在代码文件中添加using MySql.Data.MySqlClient;引用。

1.2 建立数据库连接

  • 配置连接字符串

    连接字符串包含了连接数据库所需的信息,如服务器地址、端口、数据库名称、用户名和密码等。例如,一个典型的连接字符串如下:

    string connectionString = "server=localhost;port=3306;user=root;password=your_password;database=your_database";

    其中,server是 MySQL 服务器的地址,localhost表示本地服务器;port是 MySQL 服务的端口号,默认是 3306;user和password是用于登录数据库的用户名和密码;database是要连接的数据库名称。

  • 创建连接对象并打开连接

    使用MySqlConnection类来创建连接对象,并通过Open方法打开连接。例如:

    MySqlConnection connection = new MySqlConnection(connectionString);try{connection.Open();// 在这里执行数据库操作}catch (MySqlException ex){Console.WriteLine($"数据库连接错误: {ex.Message}");}finally{connection.Close();}

    在try - catch - finally块中,try部分用于打开连接并执行数据库操作;catch部分用于捕获数据库连接过程中可能出现的异常;finally部分确保无论操作是否成功,连接都会被关闭,以释放资源。

二、数据库增删改查操作

2.1 插入数据(Insert)

  • 构建插入语句

    插入数据需要使用INSERT INTO语句。例如,假设有一个名为students的表,包含id(自增长主键)、name和age字段,插入一条学生记录的 SQL 语句如下:

    INSERT INTO students (name, age) VALUES ('John', 20);

    在 C# 代码中,可以这样构建插入语句并执行:

    string insertQuery = "INSERT INTO students (name, age) VALUES (@name, @age)";MySqlCommand command = new MySqlCommand(insertQuery, connection);command.Parameters.AddWithValue("@name", "xcLeigh");command.Parameters.AddWithValue("@age", 20);try{int rowsAffected = command.ExecuteNonQuery();if (rowsAffected > 0){Console.WriteLine("数据插入成功。");}}catch (MySqlException ex){Console.WriteLine($"数据插入错误: {ex.Message}");}

    这里使用了参数化查询,通过Parameters.AddWithValue方法添加参数。参数化查询不仅可以防止 SQL 注入攻击,还可以方便地动态设置参数值。ExecuteNonQuery方法用于执行不返回结果集的 SQL 语句,如INSERT、UPDATE和DELETE语句,它返回受影响的行数。

2.2 查询数据(Select)

  • 构建查询语句

    查询数据使用SELECT语句。例如,查询students表中所有学生的姓名和年龄的 SQL 语句如下:

    SELECT name, age FROM students;

    在 C# 代码中,可以这样执行查询操作:

    string selectQuery = "SELECT name, age FROM students";MySqlCommand command = new MySqlCommand(selectQuery, connection);MySqlDataReader reader;try{reader = command.ExecuteReader();while (reader.Read()){string name = reader.GetString("name");int age = reader.GetInt32("age");Console.WriteLine($"姓名: {name}, 年龄: {age}");}reader.Close();}catch (MySqlException ex){Console.WriteLine($"数据查询错误: {ex.Message}");}

    使用ExecuteReader方法执行查询语句,返回一个MySqlDataReader对象。通过reader.Read方法遍历结果集,然后使用GetString、GetInt32等方法获取相应列的值。注意,获取列值时,列名或列索引要与数据库表中的定义一致。

2.3 更新数据(Update)

  • 构建更新语句

    更新数据使用UPDATE语句。例如,将students表中姓名为John的学生年龄更新为 21 的 SQL 语句如下:

    UPDATE students SET age = 21 WHERE name = 'John';

    在 C# 代码中,可以这样构建和执行更新语句:

    string updateQuery = "UPDATE students SET age = @newAge WHERE name = @name";MySqlCommand command = new MySqlCommand(updateQuery, connection);command.Parameters.AddWithValue("@newAge", 21);command.Parameters.AddWithValue("@name", "John");try{int rowsAffected = command.ExecuteNonQuery();if (rowsAffected > 0){Console.WriteLine("数据更新成功。");}}catch (MySqlException ex){Console.WriteLine($"数据更新错误: {ex.Message}");}

    同样使用参数化查询来构建更新语句,通过ExecuteNonQuery方法执行更新操作,并根据返回的受影响行数判断更新是否成功。

2.4 删除数据(Delete)

  • 构建删除语句

    删除数据使用DELETE FROM语句。例如,删除students表中姓名为John的学生记录的 SQL 语句如下:

    DELETE FROM students WHERE name = 'John';

    在 C# 代码中,可以这样构建和执行删除语句:

    string deleteQuery = "DELETE FROM students WHERE name = @name";MySqlCommand command = new MySqlCommand(deleteQuery, connection);command.Parameters.AddWithValue("@name", "John");try{int rowsAffected = command.ExecuteNonQuery();if (rowsAffected > 0){Console.WriteLine("数据删除成功。");}}catch (MySqlException ex){Console.WriteLine($"数据删除错误: {ex.Message}");}

    还是使用参数化查询构建删除语句,执行ExecuteNonQuery方法后,根据返回的受影响行数判断删除是否成功。

结束语

        亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。

         愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。

        至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


--------------- 业精于勤,荒于嬉 ---------------

请添加图片描述

--------------- 行成于思,毁于随 ---------------

优质源码分享

  • 【百篇源码模板】html5各行各业官网模板源码下载

  • 【模板源码】html实现酷炫美观的可视化大屏(十种风格示例,附源码)

  • 【VUE系列】VUE3实现个人网站模板源码

  • 【HTML源码】HTML5小游戏源码

  • 【C#实战案例】C# Winform贪吃蛇小游戏源码


在这里插入图片描述


     💞 关注博主 带你实现畅游前后端

     🏰 大屏可视化 带你体验酷炫大屏

     💯 神秘个人简介 带你体验不一样得介绍

     🎀 酷炫邀请函 带你体验高大上得邀请


     ① 🉑提供云服务部署(有自己的阿里云);
     ② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;
     如🈶合作请联系我,期待您的联系。
    :本文撰写于CSDN平台,作者:xcLeigh所有权归作者所有) ,https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


     亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌


原文地址:https://blog.csdn.net/weixin_43151418/article/details/144309301(防止抄袭,原文地址不可删除)


http://www.ppmy.cn/ops/143249.html

相关文章

如何利用Python爬虫获得1688商品详情

在这个信息爆炸的时代,数据就像是一块块美味的奶酪,而爬虫就是我们手中的瑞士军刀。今天,我要带你一起潜入1688这个巨大的奶酪洞穴,用Python爬虫捞起那些香气四溢的商品详情。别担心,我们的工具箱里有各种各样的工具&a…

1 JVM JDK JRE之间的区别以及使用字节码的好处

JDK jdk是编译java源文件成class文件的,我们使用javac命令把java源文件编译成class文件。 我们在java安装的目录下找到bin文件夹,如下图所示: 遵循着编译原理,把java源文件编译成JVM可识别的机器码。 其中还包括jar打包工具等。主要是针对…

关于Postgresql旧版本安装

抛出问题 局点项目现场,要求对如下三类资产做安全加固,需要在公司侧搭建测试验证环境,故有此篇。 bclinux 8.2 tomcat-8.5.59 postgrel -11 随着PG迭代,老旧版本仅提供有限维护。如果想安装老版本可能就要费劲儿一些。现在&…

leetcode:202. 快乐数(python3解法)

难度:简单 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 …

rebase ‘A‘ onto ‘master‘ 和 merge ‘master‘ into ‘A‘有什么区别

在Git版本控制系统中,rebase 和 merge 是两种不同的操作,用于合并分支。rebase A onto master 和 merge master into A 虽然最终目的都是将两个分支的更改合并在一起,但它们在处理方式和结果上有所不同。 rebase ‘A’ onto ‘master’ 含义…

国标GB28181-2022平台EasyGBS:双网口的网络硬盘录像机怎么设置IP地址以及录像机怎么添加不同网段的摄像机?

在现代安防监控系统中,双网口的网络硬盘录像机(NVR)因其灵活性和高效性而备受青睐。这种设备不仅能够提供网络容错,确保网络的稳定性,还能通过多址设定模式连接不同网段的设备,极大地增强了监控系统的扩展性…

DIDCTF流量分析

题目来源&#xff1a;DIDCTF流量分析 来自 <DIDCTF-电子数据取证综合平台> 题目描述 43&#xff0c;分析检材1&#xff0c;黑客的IP地址是 44&#xff0c;分析检材1&#xff0c;黑客登录web后台使用的账号是 45&#xff0c;分析检材1&#xff0c;黑客登录web后台使用的密…

vue el-dialog实现可拖拉

el-dialog实现拖拉&#xff0c;每次点击度居中显示&#xff0c;以下贴出代码具体实现&#xff0c;我是可以正常拖拉并且每次度显示在中间&#xff0c;效果还可以&#xff0c;需要的可以丢上去跑跑 组件部分&#xff1a; <el-dialog:visible.sync"dialogVisible"…