C#如何操作数据库

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.mzph.cn/diannao/65721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DevOps工程技术价值流:Ansible自动化与Semaphore集成

在DevOps的浪潮中,自动化运维工具扮演着举足轻重的角色。Ansible,作为一款新兴的自动化运维工具,凭借其强大的功能和灵活性,在运维领域迅速崭露头角。本文将深入探讨Ansible的特点、架构、工作原理,以及其应用场景&…

2025元旦源码免费送

我们常常在当下感到时间慢,觉得未来遥远,但一旦回头看,时间已经悄然流逝。对于未来,尽管如此,也应该保持一种从容的态度,相信未来仍有许多可能性等待着我们。 免费获取源码。 更多内容敬请期待。如有需要可…

嵌入式开发中的机器人表情绘制

机器人的表情有两种,一种是贴图,一钟是调用图形API自绘。 贴图效果相对比较好,在存储空间大的情况下是可以采用的。 自绘比较麻烦,但在资源和空缺少的情况下,也是很有用的。而且自绘很容易通过调整参数加入随机效果&…

【Halcon】数据结构汇总

一、图形参数 图像(Image) 由像素、通道和域三个部分组成。像素类型包括灰度图像(byte和uint2)和差异图像(int1和int2)等。通道表示图像的颜色或光谱信息,彩色图像通常由红、绿、蓝三个通道组成。域可以理解为感兴趣区域(ROI),用于限制图像处理算子的作用范围。区域(…

v3.0.8- 「S+会员」新增专属运动秀,试试新穿搭吧- 与「好友」

v3.0.8 - 「S会员」新增专属运动秀,试试新穿搭吧 - 与「好友」互动支持前往对方所在的「在线运动房」 - 「运动秀工坊」新增智能背景抠图 - 「体育竞技」匹配中可以看到我和对手的装备 - 多项界面体验和性能优化 v2.0.17 - 班级运动场新增运动秀展示 - 班级玩法&…

leetcode108:将有序数组转化为二叉搜索树

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。 示例 1: 输入:nums [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也将被视为正确…

【机器学习】概述

文章目录 1. 机器学习三步骤2. 机器学习图谱2.1 任务类型 (Task)2.2 模型选择 (Methods)2.3 学习场景 (Scenario) 1. 机器学习三步骤 定义一个模型 (Define a set of function) 选择一组合适的函数来表示模型。 评估模型好坏 (Goodness of function) 找到一个损失函数&#xf…

服务器主机测试网络

测试命令 speedtest-cli sudo yum install python-pip pip install speedtest-cli # 默认连接国外被拒绝,用阿里云 pip install -i https://mirrors.aliyun.com/pypi/web/simple --trusted-host mirrors.aliyun.com speedtest-cli Collecting speedtest-cliDownlo…

01-2023年上半年软件设计师考试java真题解析

1.真题内容 在某系统中,类 Interval(间隔) 代表由下界(lower bound(边界))上界(upper bound )定义的区间。 要求采用不同的格式显示区间范围。 如[lower bound , upper bound ]、[ lower bound … upper bound ]、[ lower bou nd - upper bound &#x…

svn分支相关操作(小乌龟操作版)

在开发工作中进行分支开发,涉及新建分支,分支切换,合并分支等 新建远程分支 右键选择branch/tagert按钮 命名分支的路径名称 点击确定后远程分支就会生成一个当时命名的文件夹(开发分支) 分支切换 一般在开发阶段&a…

Vue中接入萤石等直播视频(更新中ing)

一、萤石: 1. 萤石云开发文档: https://open.ys7.com/help/31 2、安装: npm install ezuikit-js --save 3、在文件中引用:import EZUIKit from ezuikit-js 4、具体代码: 获取accessToken:https://open.…

【每日学点鸿蒙知识】模拟器开启网络、长时任务、兼容性测试支持、丢帧定位、SO中访问rawfile等

1、模拟器如何开启网络? 模拟器使用的是电脑本身的网络,不通过代理即可访问网络。 2、创建子window后,锁屏很短时间内,应用会被杀死? 没开长时任务,锁屏和退后台保活要开长时任务。 应用退至后台后&…

HarmonyOS-面试整理

目录 为什么选择HarmonyOS/ 优点/特点鸿蒙系统的权限有哪些说一说鸿蒙系统的安全机制说一说鸿蒙系统的微内核与安卓的内核区别鸿蒙操作系统的微内核架构有哪些优势分布式能力在鸿蒙系统中如何实现请解释一下鸿蒙系统中的分布式软总线技术如何在鸿蒙操作系统中进行多设备协同开发…

Python中PDF转Word的技术

Python PDF转Word技术概述 在日常办公和数据处理中,经常需要将PDF文档转换为Word文档,以便进行编辑、修改或格式调整。Python作为一种强大的编程语言,提供了多种库和工具来实现这一功能。以下是对Python中PDF转Word技术的详细介绍。 一、技…

功率器件热设计基础(四)——功率半导体芯片温度和测试方法

/ 前言 / 功率半导体热设计是实现IGBT、碳化硅SiC高功率密度的基础,只有掌握功率半导体的热设计基础知识,才能完成精确热设计,提高功率器件的利用率,降低系统成本,并保证系统的可靠性。 功率器件热设计基础系列文章会…

naive ui 安装

注意,naive-ui 仅支持 Vue3。如果你在使用 Vue2,可以去看看别的库。 npm 使用 npm 安装。 npm i -D naive-ui UMD 参考 使用 UMD。 字体 npm i -D vfonts 图标 naive-ui 建议使用 xicons 作为图标库。

Kafka消息不丢失与重复消费问题解决方案总结

1. 生产者层面 异步发送与回调处理 异步发送方式:生产者一般使用异步方式发送消息,异步发送有消息和回调接口两个参数。在回调接口的重写方法中,可通过异常参数判断消息发送状态。若消息发送成功,异常参数为null;若发…

linux-centos-安装miniconda3

参考: 最新保姆级Linux下安装与使用conda:从下载配置到使用全流程_linux conda-CSDN博客 https://blog.csdn.net/qq_51566832/article/details/144113661 Linux上删除Anaconda或Miniconda的步骤_linux 删除anaconda-CSDN博客 https://blog.csdn.net/m0_…

JDK7 与 JDK8 的 HashMap 的区别

JDK7 与 JDK8 的 HashMap 的区别: 项JDK7JDK8数据结构数组 链表。 复杂度:O(n)数组 链表 红黑树 (若链表长度大于等于8 且容量小于64 会进行扩容;若链表长度大于8 且数组长度大于等于64,会转化为红黑树&#xff08…

【每日学点鸿蒙知识】Taro、native层获取文件宽度、位置变化callback、数据迁移、oh_modules说明等

1、Taro开发HarmonyOS NEXT有相应的开发文档吗? Taro Harmony Hybrid容器是为让Taro小程序代码可以完整的运行在鸿蒙单内核系统里,在Taro H5平台的基础上,基于原生壳工程的jsbridge能力,扩展H5平台不支持的小程序Api能力&#xf…