C#如何操作数据库

devtools/2024/12/31 23:33:57/

C#如何操作数据库

  • 前言
  • 1、查询操作
  • 2、增删改操作
  • 3、需要返回id主键的sql语句执行

前言

本文主要交代如何通过引用

using MySql.Data.MySqlClient;

来操作数据库
需要导入.dll文件
例如:在本地Mysql下载目录下->Connecter NET 8.0->Assemblies->net5.0->MySql.Data.dll
请根据实际情况,灵活选择.dll文件的版本

1、查询操作

	//连接数据库字符串string conStr = "server=localhost;port=3306;user=root;password=123456;database=liardice";//建立mysql连接(连接池)MysqlConnection con = new MySqlConnection(conStr);//打开连接con.Open();//编写sql语句//此处直接拼接给入的account值,在后文(2、)中还会展示如何给sql语句添加参数string sql = "select id,account,password from userdata where account=" + account + ";";//Mysql命令对象MysqlCommand cmd = new MySqlCommand(sql, con);//执行,得到mysql的数据读取流MysqlDataReader reader = cmd.ExecuteReader();//这里展示的是查询一条消息,如果查出来很多条消息可以把if换成while循环if (reader.Read())//说明有这个信息{//将查出来的信息封装到对象中UserData ud = new UserData();ud.setId((int)(reader[0]));ud.setAccount(reader[1].ToString());ud.setPassword(reader[2].ToString());}else//说明没有这个信息 暂不做处理{reader.Close();}//关闭资源,可以使用try-catch-finally等来完成if (reader != null){reader.Close();}if (cmd != null){cmd.Dispose();}if (con != null){con.Close();
}

2、增删改操作

增删改操作是类似的,此处用增加操作举例

	//连接字符串string conStr = "server=localhost;port=3306;user=root;password=123456;database=liardice";//连接对象MysqlConnection con = new MySqlConnection(conStr);//打开连接con.Open();//编写sql语句string sql = "insert into userdata (account,password) values(@account,@password);";MysqlCommand cmd = new MySqlCommand(sql, con);//使用bcrypt加密string encryptedPassword = BCryptNet.HashPassword(password);//给sql语句添加参数,避免sql注入攻击cmd.Parameters.AddWithValue("@account", account);cmd.Parameters.AddWithValue("@password", encryptedPassword);//执行sql语句cmd.ExecuteNonQuery();

3、需要返回id主键的sql语句执行

只需在最后执行时,调用cmd.ExecuteScalar()方法即可

int id = (int)cmd.ExecuteScalar();

http://www.ppmy.cn/devtools/146427.html

相关文章

从0入门自主空中机器人-2-2【无人机硬件选型-PX4篇】

1. 常用资料以及官方网站 无人机飞控PX4用户使用手册(无人机基本设置、地面站使用教程、软硬件搭建等):https://docs.px4.io/main/en/ PX4固件开源地址:https://github.com/PX4/PX4-Autopilot 飞控硬件、数传模块、GPS、分电板等…

【蓝桥杯——物联网设计与开发】拓展模块5 - 光敏/热释电模块

目录 一、光敏/热释电模块 (1)资源介绍 🔅原理图 🔅AS312 🌙简介 🌙特性 🔅LDR (2)STM32CubeMX 软件配置 (3)代码编写 (4&#x…

10.MySQL事务

目录 什么是事务为什么有事务存在事务的版本支持事务的提交方式事务常见的操作方式事务异常验证与产出结论事务隔离性理论事务隔离级别的设置与查看事务隔离级别 - 读未提交事务隔离级别 - 读提交事务隔离级别 - 可重复读事务隔离级别 - 串行化MVCC机制3个记录隐藏字段undo日志…

pytorch将数据与模型都放到GPU上训练

默认是CPU,如果想要用GPU需要: 安装配置cuda,然后更新/下载支持gpu版本的pytorch,可以参考:https://blog.csdn.net/weixin_35757704/article/details/124315569设置device:device torch.device(cuda if t…

7种server的服务器处理结构模型

两种高效的事件处理模式 服务器程序通常需要处理三类事件:I/O 事件、信号及定时事件。有两种高效的事件处理模式:Reactor和 Proactor,同步 I/O 模型通常用于实现Reactor 模式,异步 I/O 模型通常用于实现 Proactor 模式。 无论是 …

基于SpringBoot和PostGIS的全球城市信息管理实践

目录 前言 一、业务需求介绍 1、功能思维导图 二、业务系统后台实现 1、Model层实现 ?2、业务层的实现 3、控制层的实现 三、前端管理业务的实现 1、全球城市列表的实现 ?2、详情页面实现 3、实际城市定位? 四、总结 前言 在全球化和信息化时代背景下&#xff…

vue3使用element-plus,解决 el-table 多选框,选中后翻页再回来选中失效问题

问题&#xff1a;勾选的数据分页再回来回消失 1.在el-table中加 :row-key"getRowKey" const getRowKey (row) > { return row.id; // id必须是唯一的 }; 2.给type为selection的el-table-column添加上reserve-selection属性 <el-tableref"multipleTab…

Day55 图论part05

并查集理论基础 并查集理论基础很重要,明确并查集解决什么问题,代码如何写,对后面做并查集类题目很有帮助。 并查集理论基础 | 代码随想录 总结 1.并查集主要有两个功能:主要就是集合问题 寻找根节点,函数:find(int u),也就是判断这个节点的祖先节点是哪个将两个节点接…