C#操作MySQL数据库——思路简单清晰
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数据库
其它参考链接:
2、C#调用MySQL数据库(使用MySql.Data.dll连接)
C#操作MySQL数据库——思路简单清晰的更多相关文章
- linux操作mysql数据库常用简单步骤
连接mysql数据库: 主要看mysql安装在哪一个目录下: mysql -h主机地址 -u用户名 -p用户密码 或者mysql -h ip地址 -u zaiai -p zaiai 或者/v ...
- 使用Go语言操作MySQL数据库的思路与步骤
最近在做注册登录服务时,学习用Go语言操作MySQL数据库实现用户数据的增删改查,现将个人学习心得总结如下,另外附有代码仓库地址,欢迎各位有兴趣的fork. 软件环境:Goland.Navicat f ...
- C#中简单操作Mysql数据库
以C#访问MySQL数据库,执行简单的CRUD. MySql.Data.dll是C#操作MySQL的驱动文件,是C#连接MySQL必要插件,使C#语言更简洁的操作MySQL数据库.可以用NuGet命令 ...
- python接口自动化(三十八)-python操作mysql数据库(详解)
简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库, ...
- Python操作MySQL数据库(步骤教程)
我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.在这篇博客中,将以MySQL数据库为例,介 ...
- 转 用C API 操作MySQL数据库
用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...
- PHP操作mysql数据库:[2]查询数据听语音
本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料 Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言 ...
- Code First操作Mysql数据库
前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...
- Java 操作MySql数据库
Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库. 第一章 JDBC的概念 JDBC(Ja ...
- PHP连接局域网MYSQL数据库的简单实例
PHP连接局域网MYSQL数据库的简单实例 [php] view plaincopy <?PHP /** * php连接mysql数据库 * by www.jbxue.com */ $conn= ...
随机推荐
- jmeter测试rpc接口-使用dubbo框架调用
1.下载用于测试dubbo的spring boot项目 参考文章: http://t.zoukankan.com/111testing-p-11297038.html https://zhuanlan ...
- jetpack1
组合函数 package com.example.myapplication1 import android.os.Bundle import androidx.activity.ComponentA ...
- AI五子棋_02_03 Get传输数据 公共密钥
AI五子棋 第二步 恭喜你到达第二步! 警告:如果你是直接使用浏览器获得本页地址的话,请你返回第一步. 在前一步里,你得到的这样的返回结果 {"is_success": true, ...
- 汉文博士 0.5.9 测试版发布:增加统一码中日韩表意文字扩展 G 区的构型检索和 GB/T2312、GBK字表
之前我们采用的构型数据库在 2019 年起未见更新,但我最近在该数据库的页面找到了该数据库的基础数据源(CHISE),而该数据源上提供了中日韩表意文字扩展 G 区的构型数据.这样,在构型检索中支持扩展 ...
- GIt分布式管理工具
Git(分布式版本控制工具) Git的学习是不依赖我们前面学习的知识,就算没有学习java也可以学习 Git就是一个类似于百度云盘的仓库 重点是要掌握使用idea操作Git,企业用的最多,一般不会去使 ...
- 返璞归真!使用 alpinejs 开发交互式 web 应用,抛弃 node_modules 和 webpack 吧!
前言 最近一直在使用 DjangoStarter 开发各种小项目,之前我是比较喜欢前后端分离的,后端用 Ninja API,前端 nextjs,开发起来也挺舒服的,交互体验也比较好. 不过我在网上冲浪 ...
- celery报错笔记
报错: Invalid value for '-P' / '--pool' Invalid value for '-P' / '--pool': <class 'celery.concurren ...
- Java深度历险(三)——Java线程:基本概念、可见性与同步
开发高性能并发应用不是一件容易的事情.这类应用的例子包括高性能Web服务器.游戏服务器和搜索引擎爬虫等.这样的应用可能需要同时处理成千上万个请求.对于这样的应用,一般采用多线程或事件驱动的架构.对于J ...
- Django admin实现图片上传到腾讯云
官网参考:https://docs.djangoproject.com/zh-hans/3.2/howto/custom-file-storage/ 当前业务需要使用django的admin后台进行数 ...
- 【Amadeus原创】域密码到期发送提醒邮件的超简单方法
1,AD服务器下载安装免费的卓豪AD管理工具 https://www.manageengine.cn/products/self-service-password/free-password-expi ...