1、下载mysql.Data.dll,在解决方案->引用中引入,并在文件头部引入

using MySql.Data.MySqlClient;

2、创建MySqlConnection对象(链接库)

string connstr = "data source=localhost;database=cs_test;user id=root;password=123456;pooling=false;charset=utf8";//pooling代表是否使用连接池
MySqlConnection conn = new MySqlConnection(connstr);

3、创建对应操作的MySqlCommand对象(测试数据库表名characters,属性列:id,names,passwords)

string sql = "select * from characters";
MySqlCommand cmd = new MySqlCommand(sql,conn);

4、针对不同操作,MySqlCommand对象有三个常用方法

(1)查找多行 : ExecuteReader()方法

返回一个MysqlDataReader对象,包含多个行,可以用其Read方法逐行读取。

对于每行元素,可以用getXXX()方法读取属性值,XXX为该属性类型,参数为属性名或者该属性为这张表的第几列。

可以用IsDBNull()方法判断是否为空,参数只能是该属性为这张表的第几列(即只能是数字)

conn.Open();
MySqlDataReader reader = cmd.ExecuteReader();
Console.WriteLine("id\t姓名\t密码");
while (reader.Read())
{
Console.Write(reader.GetInt32("id")+"\t");
if (reader.IsDBNull(1))
{
Console.Write("空\t");
}
else
{
Console.Write(reader.GetString("names")+"\t");
}
if (reader.IsDBNull(2))
{
Console.Write("空\n");
}
else
{
Console.Write(reader.GetString("passwords")+"\n");
}
}
conn.Close();

(2)查找单个: ExecuteScalar()

返回值为查找到的元祖第一个属性,以object类型返回

string sql2 = "select names from characters where id=2";
MySqlCommand cmd2 = new MySqlCommand(sql2,conn);
conn.Open();
string names = cmd2.ExecuteScalar().ToString();
Console.WriteLine(names);
conn.Close();

(3)增、删、改: ExecuteNonQuery()

返回值为int,不成功是0,成功是1

string sql3 = "insert into characters (names,passwords) values ('XXX','1234456')";
MySqlCommand cmd3 = new MySqlCommand(sql3,conn);
conn.Open();
int s = cmd3.ExecuteNonQuery();
if (s == 0)
Console.WriteLine("false");
else
Console.WriteLine("success");
conn.Close();

5、完整代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient; namespace mysql_test
{
class mysqlcz{
public mysqlcz()
{
string connstr = "data source=localhost;database=csceshi;user id=root;password=123456;pooling=false;charset=utf8";
using (MySqlConnection conn = new MySqlConnection(connstr))
{
string sql = "select * from characters";
MySqlCommand cmd = new MySqlCommand(sql,conn);
conn.Open();
MySqlDataReader reader = cmd.ExecuteReader();
Console.WriteLine("id\t姓名\t密码");
while (reader.Read())
{
Console.Write(reader.GetInt32("id")+"\t");
if (reader.IsDBNull(1))
{
Console.Write("空\t");
}
else
{
Console.Write(reader.GetString("names")+"\t");
} if (reader.IsDBNull(2))
{
Console.Write("空\n");
}
else
{
Console.Write(reader.GetString("passwords")+"\n");
}
}
conn.Close();
string sql2 = "select names from characters where id=2";
MySqlCommand cmd2 = new MySqlCommand(sql2,conn);
conn.Open();
string names = cmd2.ExecuteScalar().ToString();
Console.WriteLine(names);
conn.Close(); string sql3 = "insert into characters (names,passwords) values ('XXX','1234456')";
MySqlCommand cmd3 = new MySqlCommand(sql3,conn);
conn.Open();
int s = cmd3.ExecuteNonQuery();
if (s == 0) Console.WriteLine("false");
else Console.WriteLine("success");
conn.Close();
}
Console.ReadLine();
} }
class Program
{
static void Main(string[] args)
{
mysqlcz mt = new mysqlcz();
}
}
}

6、sql语句参数化

为防止sql注入,尽量不要使用字符串拼接的方法拼接sql字符串

string uname=Console.ReadLine();
string upwd=Console.ReadLine();//获取用户输入
string sql="insert into characters (names,passwords) values (@name,@pwd)";//使用@符构造sql变量
MysqlCommand cmd = new MysqlCommand(sql,conn);
//使用MysqlCommand对象的parameters属性,该属性为像sql语句传递的参数集合,使用add方法向其中添加参数,参数以MysqlParameters对象形式传递
cmd.parameters.Add(new MysqlParametes("@name",uname));
cmd.parameters.Add(new MysqlParameters("@pwd",upwd));
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();

原文链接:C#操作MYSQL数据库

其它参考链接:

1、C#连接MySQL数据库

2、C#调用MySQL数据库(使用MySql.Data.dll连接)

C#操作MySQL数据库——思路简单清晰的更多相关文章

  1. linux操作mysql数据库常用简单步骤

    连接mysql数据库: 主要看mysql安装在哪一个目录下: mysql -h主机地址 -u用户名 -p用户密码   或者mysql -h ip地址 -u  zaiai -p zaiai   或者/v ...

  2. 使用Go语言操作MySQL数据库的思路与步骤

    最近在做注册登录服务时,学习用Go语言操作MySQL数据库实现用户数据的增删改查,现将个人学习心得总结如下,另外附有代码仓库地址,欢迎各位有兴趣的fork. 软件环境:Goland.Navicat f ...

  3. C#中简单操作Mysql数据库

    以C#访问MySQL数据库,执行简单的CRUD. MySql.Data.dll是C#操作MySQL的驱动文件,是C#连接MySQL必要插件,使C#语言更简洁的操作MySQL数据库.可以用NuGet命令 ...

  4. python接口自动化(三十八)-python操作mysql数据库(详解)

    简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库, ...

  5. Python操作MySQL数据库(步骤教程)

    我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.在这篇博客中,将以MySQL数据库为例,介 ...

  6. 转 用C API 操作MySQL数据库

    用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...

  7. PHP操作mysql数据库:[2]查询数据听语音

    本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料   Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言   ...

  8. Code First操作Mysql数据库

    前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...

  9. Java 操作MySql数据库

    Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库. 第一章 JDBC的概念 JDBC(Ja ...

  10. PHP连接局域网MYSQL数据库的简单实例

    PHP连接局域网MYSQL数据库的简单实例 [php] view plaincopy <?PHP /** * php连接mysql数据库 * by www.jbxue.com */ $conn= ...

随机推荐

  1. SQLServer数据库日志太大处理方式

    SQLServer数据库日志太大处理方式 1.1 如下图,点击连接登陆数据库 1.2 如下图,打开数据库属性窗口 1.3 如下图,更改数据库恢复模式 1.4 如下图,收缩数据库日志 到这里已经完成了, ...

  2. Kubernetes 边缘节点抓不到监控指标?试试这个方法!

    KubeSphere v3.1.0 通过集成 KubeEdge,将节点和资源的管理延伸到了边缘,也是 KubeSphere 正式支持边缘计算的第一个版本. 笔者也第一时间搭建和试用了边缘节点相关的功能 ...

  3. Vue 实现 PDF 导出功能

    旨在通过 html2canvas 和 jspdf,先将页面的 html 转成 canvas,再将 canvas 转成 pdf,同时解决了分页截断的问题. 安装依赖 yarn add html2canv ...

  4. Awesome Tools,程序员常用高效实用工具、软件资源精选,办公效率提升利器!

    前言 在当今这个技术日新月异的时代,开发者只有持续学习,才能紧跟时代的浪潮.为了助力开发者在高效学习与工作中实现平衡(告别996的束缚),众多卓越且实用的开发工具应运而生,它们如同强大的助力器,极大地 ...

  5. Win11安装基于WSL2的Ubuntu

    1. 概述 趁着还没有完全忘记,详细记录一下在Win11下安装基于WSL2的Ubuntu的详细过程.不得不说WLS2现在被微软开发的比较强大了,还是很值得安装和使用的,笔者就通过WLS2安装的Ubun ...

  6. SSIS ODBC方式连接mysql数据库

    系统环境:WIN 10 64位 1.安装Mysql odbc connector 插件 文章说明链接: https://www.cnblogs.com/santiagoMunez/p/4780301. ...

  7. Python学习第一周记录

    网上下载了python视频,找了相关资料,看了一个星期,先总结下这个礼拜的小知识点: 第一个小程序"hello word" 开始了解变量赋值,引用输入input; 学会使用判断if ...

  8. 2023NOIP A层联测20 T3 点餐

    2023NOIP A层联测20 点餐 题目很好,可惜考试没想到. 思路 可以按照 \(b\) 从小到大排序,固定选择个数 \(k\),枚举选择的盘子 \(x\) 的 \(b\) 最大,最优解肯定是贪心 ...

  9. PHP无法连接MySQL8.0数据库问题处理 报错如下: SQLSTATE[HY000]

    PHP无法连接MySQL8.0数据库问题处理报错如下:SQLSTATE[HY000] [2054] The server requested authentication method unknown ...

  10. golang之函数工具库lancet

    lancet(柳叶刀)是一个全面.高效.可复用的go语言工具函数库. lancet受到了java apache common包和lodash.js的启发. 简体中文 | English 特性 全面.高 ...