C# winform 连接mysql数据库(navicat)

news2024/11/10 7:43:52

1.解决方案资源管理器->右键->管理NuGet程序包->搜索, 安装Mysql.Data

2.解决方案资源管理器->右键->添加->引用->浏览->

C:\Program Files (x86)\MySQL\MySQL Installer for Windows

->选择->MySql.Data.dll

3.解决方案资源管理器->右键->添加->新建项->类->取名Dao(类名可以改)->加入代码

 public MySqlConnection sc;//数据库连接对象
        public MySqlConnection connect()//连接数据库
        {
            string str = String.Format("server=localhost;uid=root;pwd=123456;database=Book;charset=utf8");
            sc = new MySqlConnection(str);
            sc.Open();
            return sc;
        }
        public MySqlCommand command(string sql)//执行一条sql语句
        {
            MySqlCommand cmd = new MySqlCommand(sql, connect());
            return cmd;
        }
        public int Excute(string sql)//获取执行sql语句后 数据库表中数据条数的更新数量
        {
            return command(sql).ExecuteNonQuery();
        }
        public MySqlDataReader read(string sql)//读取数据库中的数据
        {
            return command(sql).ExecuteReader();
        }
        public void DaoClose()//关闭数据库
        {
            sc.Close();
        }

加入代码

using MySql.Data.MySqlClient;

server=服务器名;uid=用户名;pwd=密码;database=数据库;charset=utf8(可改为其它的编码)。

其中charset防止中文数据的插入会在数据库表中乱码显示。

Dao类文件完整代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Data.SqlClient;
using System.Data;
using MySql.Data.MySqlClient;

namespace ManageBook
{
    class Dao
    {
        public MySqlConnection sc;//数据库连接对象
        public MySqlConnection connect()//连接数据库
        {
            string str = String.Format("server=localhost;uid=root;pwd=123456;database=Book;charset=utf8");
            sc = new MySqlConnection(str);
            sc.Open();
            return sc;
        }
        public MySqlCommand command(string sql)//执行一条sql语句
        {
            MySqlCommand cmd = new MySqlCommand(sql, connect());
            return cmd;
        }
        public int Excute(string sql)//获取执行sql语句后 数据库表中数据条数的更新数量
        {
            return command(sql).ExecuteNonQuery();
        }
        public MySqlDataReader read(string sql)//读取数据库中的数据
        {
            return command(sql).ExecuteReader();
        }
        public void DaoClose()//关闭数据库
        {
            sc.Close();
        }
    }
}

向数据库中插入数据,注册例子

//注册按钮事件
        private void btnLogon_Click(object sender, EventArgs e)
        {
            //判读注册时所填入的信息是否有空项
            if (txtIDCard.Text == "" || txtName.Text == "" || txtTel.Text == "" || txtPwd.Text == "" || txtAgainPwd.Text == "" || cobSex.Text == "")
            {
                //提示:有空项
                MessageBox.Show("有空项","消息",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                return;
            }
            //注册   获取数据库中账号的最大值  然后加  1
            Dao dao = new Dao();
            dao.connect();//连接并打开数据库
            string sql = "select MAX(Uid) from T_User";
            MySqlDataReader reader = dao.read(sql);
            reader.Read();
            int id = int.Parse(reader[0].ToString())+1;//注册的账号
            string name = txtName.Text;
            string idCard = txtIDCard.Text;
            string tel = txtTel.Text;
            string sex = cobSex.Text;
            string pwd = txtPwd.Text;

            //进行添加
            sql = $"insert into T_User values('{id}','{name}','{pwd}','{sex}','{idCard}','{tel}','1')";
            if (dao.Excute(sql) > 0)
            {
                //注册成功
                MessageBox.Show("注册成功", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("注册失败", "消息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            reader.Close();
            dao.DaoClose();
        }

如果sc.Open();打开数据库报错时,试试删除引用MySql.Data,再重新添加。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1648615.html

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

相关文章

揭秘 IEEE/ACM Trans/CCF/SCI,谁才是科研界的王者?

会议之眼 快讯 在学术探索的浩瀚星海中,每一篇论文都像是一颗璀璨的星辰,而那些被顶级期刊或会议收录的论文,则无疑是最耀眼的几颗。 在众多评价标准中,IEEE/ACM Transactions、CCF推荐期刊和会议、SCI分区期刊,它们…

共价连接dPEG可作为PC和ADMET性能改良剂

共价连接 dPEG 可作为 PC 和 ADMET 性能改良剂 抗体片段(Antibody fragments) 工程抗体片段的 PEG 化通常使用较大的多分散 PEG(Cimzia、Dapirolizumab Pegol 等)来延长小分子量蛋白的半衰期。最近,Genentech公司的研究…

AI去衣技术在动画制作中的应用

随着科技的发展,人工智能(AI)已经在各个领域中发挥了重要作用,其中包括动画制作。在动画制作中,AI去衣技术是一个重要的工具,它可以帮助动画师们更加高效地完成工作。 AI去衣技术是一种基于人工智能的图像…

CUDA-共享内存法实现矩阵乘法(比常规方案提速一倍)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 共享内存是什么? 共享内存是在多个处理单元之间共享数据的一种内存区域。在计算机体系结构中,共享内存通…

dPEG与传统PEG以及其他烷基交联剂产品的优势

作为Linker的dPEG 研究证明,通过交联剂将不同物质结合在一起的能力已被证明是诊断和药物输送系统中非常有用的一项技术。由多分散PEG组成的交联剂已被用于制备多种多聚物以及将靶向配体偶联到纳米颗粒上。这通常用于需要非常大的尺寸以提供良好的DMPK性能并且受多分…

GPU术语

SP(Streaming Processor)流处理器 流处理器是GPU最基本的处理单元,在fermi架构开始被叫做CUDA core。 SM(Streaming MultiProcessor) 一个SM由多个CUDA core组成。SM还包括特殊运算单元(SFU),共享内存(shared memory),寄存器文件(Register …

抖音短视频矩阵系统技术源头/源代码开发部署/SaaS贴牌/源码api代开发

抖音短视频矩阵系统技术源头/源代码开发部署/SaaS贴牌/源码官方平台api授权代开发 一、短视频矩阵系统源码开发步骤 短视频矩阵系统的源头开发步骤通常包括以下几个关键阶段: 1.需求分析:明确系统的目标用户、功能需求、性能要求等。 2.系统设计&…

加密技术在保护企业数据中的应用

加密技术是企业数据保护的核心,对于维护信息安全至关重要。透明加密技术使文件加密后不改变用户对文件的使用习惯,内部文件打开自动解密,存储自动加密,一旦离开使用环境,加密文件将无法正常读取,从而保护文…

【算法】唯一分解定理及最lcm和gcd关系 宝石组合

前言 今天在做一道宝石组合的题目时了解到了这个定理,还是蛮有意思的。 思想 唯一分解定理: 对于任何正整数n,有 n p 1 a 1 p 2 a 2 . . . p k a k n p_1^{a1} \times p_2^{a2} \times ... \times p_k^{ak} np1a1​p2a2​...pkak​ …

【最大公约数 并集查找 调和级数】1998. 数组的最大公因数排序

本文涉及知识点 最大公约数 并集查找 调和级数 LeetCode1998. 数组的最大公因数排序 给你一个整数数组 nums ,你可以在 nums 上执行下述操作 任意次 : 如果 gcd(nums[i], nums[j]) > 1 ,交换 nums[i] 和 nums[j] 的位置。其中 gcd(nums…

【JVM】类加载机制及双亲委派模型

目录 一、类加载过程 1. 加载 2. 连接 a. 验证 b. 准备 c. 解析 3. 初始化 二、双亲委派模型 类加载器 双亲委派模型的工作过程 双亲委派模型的优点 一、类加载过程 JVM的类加载机制是JVM在运行时,将 .class 文件加载到内存中并转换为Java类的过程。它…

Android 桌面小组件 AppWidgetProvider

Android 桌面小组件 AppWidgetProvider 简介 小组件就是可以添加到手机桌面的窗口。点击窗口可以进入应用或者进入应用的某一个页面。 widget 组件 如需创建 widget,您需要以下基本组件: AppWidgetProviderInfo 对象 描述 widget 的元数据&#xff0…

Linux基础配置(镜像挂载,FQDN)

CentOS基础配置: 以下是appsrv的基础配置脚本,CentOS系统只需要把appsrv改成需要的主机名即可(因为Linux基础配置都差不多,写脚本是最省时间的做法,IP地址的配置一般用nmtui图形化界面工具) #!/bin/bash …

告别杂乱桌面,开启纯净视界!DeskCover Pro,Mac用户的桌面神器!

DeskCover Pro for Mac是一款专为macOS设计的桌面图标隐藏软件,其主要功能和特点包括: 桌面图标隐藏:通过单击鼠标或按全局热键,可以快速隐藏桌面上的所有图标,为您提供一个干净整洁的工作环境。窗口聚焦:…

ChatGPT-Next-Web漏洞利用分析(CVE-2023-49785)

1. 漏洞介绍 ​ 日常网上冲浪,突然粗看以为是有关Chat-GPT的CVE披露出来了,但是仔细一看原来是ChatGPT-Next-Web的漏洞。漏洞描述大致如下:(如果有自己搭建了还没更新的速速修复升级防止被人利用,2.11.3已经出来了&am…

MySQL—多表设计与查询

目录 多表设计 ▐ 数据库设计范式 ▐ 多对一 关系表设计 ▐ 多对多 关系表设计 关联查询 ▐ 概述 ▐ 内连接 ○ 思考? ▐ 左外连接 ▐ 右外连接 多表设计 ▐ 数据库设计范式 • 第一范式:确保每列保持原子性 ( 列不可再分解 ) 例如联系方式…

Mac数据恢复软件快速比较:适用于Macbook的10佳恢复软件

数据丢失导致无数个人和组织每天损失大量资金。更糟糕的是,某些文件具有货币价值和情感意义,使它们不可替代,并使数据恢复成为唯一可行的选择。最好的消息是Mac用户可以从各种数据恢复程序中进行选择。为了帮助您尽可能快速、轻松地恢复丢失的…

弹性云服务器是什么,为何如此受欢迎

云计算作为当下炙手可热的技术领域,已然成为现代企业不可或缺的核心能力。云服务器作为云计算的基石之一,在这个数字化时代发挥着至关重要的作用。而弹性云服务器,作为云服务器的一种演进形式,更是备受瞩目。 弹性云服务器&#…

求知导刊-知网收录//旬刊//如何投稿?

求知导刊-知网收录//旬刊//如何投稿? 《求知导刊》栏目设置 理论探索、课堂教学、教改课改、教育管理、教师教育、教学案例、学科进展、学术论坛。 《求知导刊》征稿对象: 全国科技工作者、教育工作者,各级科技与教育部门的领导者以及管理…

鸿蒙内核源码分析(时间管理篇) | 谁是内核基本时间单位

时间概念太重要了,在鸿蒙内核又是如何管理和使用时间的呢? 时间管理以系统时钟 g_sysClock 为基础,给应用程序提供所有和时间有关的服务。 用户以秒、毫秒为单位计时.操作系统以Tick为单位计时,这个认识很重要. 每秒的tick大小很大程度上决…