MySql数据库 - 5.用C#连接数据库
- 添加 dll 引用,dll 位置:C:\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.5.2
- 引入命名空间:MySql.Data.MySqlClient
- 编写连接字符串,连接字符串内容包括:
数据库名(database);ip 地址(datasource/data source);端口号(port);用户名(userid/user);密码(password/pwd) - 创建一个用于动态链接的 MySqlConnection 变量
- 调用Open方法打开数据库连接
- 编写 增、删、改、查 语句
a. 创建SQL语句
b. 执行SQL语句 - 调用Close方法关闭数据库连接
示例代码:
using System;
using MySql.Data.MySqlClient; namespace MYSQL数据库操作
{
class Program
{
static void Main(string[] args)
{
// 连接字符串(该字符串不区分大小写):数据库名(database),ip地址(datasource/data source),端口号(port),用户名(userid/user),密码(password/pwd)
string connStr =
"database = test007;" +
"datasource = 127.0.0.1;" +
"port = 3306;" +
"userid =root;" +
"password=root";
// 用于动态链接的对象
// 参数:需要填一个连接字符串
MySqlConnection conn = new MySqlConnection(connStr); // 打开连接
conn.Open(); // 查询
//SelectData(conn);
// 插入数据
//InsertData(conn);
// 删除
//DeleteData(conn);
// 更新数据
UpdateData(conn); conn.Close(); // 关闭时需要遵循 先开后关 的顺序。 Console.ReadKey();
}
// 查询
static void SelectData(MySqlConnection conn)
{
// 创建一个 MySql 对象(创建一个SQL命令)
// 参数:SQL语句,Connector对象
MySqlCommand cmd = new MySqlCommand("select * from user",conn);
// 执行 SQL 命令(返回一个读取流)
MySqlDataReader reader = cmd.ExecuteReader();
// 判断Reader里面是否有数据 reader.HasRows
// 调用 Read方法,表示读取一行记录(返回值:读取到数据返回 true,没有读取到数据返回false)
while (reader.Read())
{
// 获得需要的数据
string username = reader.GetString("username");
string password = reader.GetString("password");
// 打印读取到的数据
Console.WriteLine(username + ":" + password); }
// 关闭读取流,SQL 命令不需要关闭
reader.Close();
// 关闭和数据库的连接
} // 插入
static void InsertData(MySqlConnection conn)
{
// 定义用户名和IMA
string username = "qqq";
string password = "www";
/*
// 字符串组拼的方式插入数据,可能出现 SQL注入的问题
MySqlCommand cmd = new MySqlCommand("insert into user set username = '" + username +
"',password = '" + password + "'",conn);
*/
// 针对以上问题的解决方案
MySqlCommand cmd = new MySqlCommand("insert into user set username = @un, password = @pwd", conn);
cmd.Parameters.AddWithValue("un", username);
cmd.Parameters.AddWithValue("pwd", password); cmd.ExecuteNonQuery();
} // 删除
static void DeleteData(MySqlConnection conn)
{
int id = ;
MySqlCommand cmd = new MySqlCommand("delete from user where id = @id", conn);
cmd.Parameters.AddWithValue("id", id); cmd.ExecuteNonQuery();
} // 更新数据
static void UpdateData(MySqlConnection conn)
{
string password = "";
MySqlCommand cmd = new MySqlCommand("update user set password = @pwd where id = 1",conn);
cmd.Parameters.AddWithValue("pwd", password);
cmd.ExecuteNonQuery();
}
}
}
MySql数据库 - 5.用C#连接数据库的更多相关文章
- 越光后端开发——ygapi(1.新建项目ygapi、新建MySQL数据库yg、项目连接数据库)
1.新建MySQL数据库 show databases;//查看已经有的数据库 create database yg; 2.新建项目ygapi 1.使用pycharm新建django项目取名ygapi ...
- MySQL数据库 -- Navicat、pycharm连接数据库
内容目录 1.Navicat使用 2.pycharm使用数据库 一.Navicat使用 #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新 ...
- php将图片以二进制保存到mysql数据库并显示
一.存储图片的数据表结构: -- -- 表的结构 `image` -- CREATE TABLE IF NOT EXISTS `image` ( `id` int(3) NOT NULL AUTO_I ...
- 通过JSP网页连接MySQL数据库,从MySQL数据库中读出一张表并显示在JSP网页中
1.安装所需软件 ①安装java和tomcat,建立JSP网页最基础的软件②安装MySQL数据库(下载地址:https://www.mysql.com/)③安装Navicat Premium来查看数据 ...
- mysql数据库的基本使用命令总结
mysql数据库是一个常用的关系型数据库 关系型数据库核心元素有哪些? 主键:特殊字段,用来唯一标识记录的唯一性 字段:数据列 记录:数据行 数据表:数据行的集合 数据库:数据表的集合 安装.启动.停 ...
- Python数据存储 — MySQL数据库操作
本地安装MySQL 调试环境python3.6,调试python操作mysql数据库,首先要在本地或服务器安装mysql数据库. 安装参考:https://mp.csdn.net/postedit/8 ...
- 【python】python3连接mysql数据库
一.安装pymysql 详见http://www.runoob.com/python3/python3-mysql.html 二.连接mysql数据库 db = pymysql.connect( #连 ...
- 【php】php操作MySQL数据库
一.操作步骤: 1. 连接MySQL数据库并判断是否连接成功2. 选择数据库3. 设置字符集4. 准备SQL语句5. 向MySQL服务发送SQL语句6. 解析处理结果集7. 释放结果集,关闭数据库连接 ...
- (转)PHP连接数据库之PHP连接MYSQL数据库代码
PHP连接数据库之PHP连接MYSQL数据库代码 < ?php $mysql_server_name='localhost'; //改成自己的mysql数据库服务器 $mysql_usernam ...
随机推荐
- 论overflow滚动的重要性
原理 设置一个块级作用域溢出的效果,只需要在外部块的位置上设置overflow:scroll和height:xx即可. 此时,块级作用域的内容位移超出外部块的位移就会出现滚动条,当内部块滚动时,我们能 ...
- Android SDK下载OpenMobile api
在Android SDK Manager的Tools -> Manager Add-on sites... -> User Defined Sites中,添加以下地址: http://se ...
- 模块化Java简介
什么是模块化? 模块化是个一般概念,这一概念也适用于软件开发,可以让软件按模块单独开发,各模块通常都用一个标准化的接口来进行通信.实际上,除了规模大小有区别外,面向对象语言中对象之间的关注点分离与 ...
- python_67_生成器3
import time def consumer(name): print("%s 准备吃包子啦!"%name) while True: baozi = yield print(& ...
- javaweb基础(27)_jsp标签库实例
一.开发标签库 1.1.开发防盗链标签 1.编写标签处理器类:RefererTag.java 1 package me.gacl.web.simpletag; 2 3 import java.io.I ...
- PHP开发框架流行度排名:Laravel居首
摘要:在PHP开发中,选择合适的框架有助于加快软件开发,节约宝贵的项目时间,让开发者专注于功能的实现上.Sitepoint网站做了一个小的调查,结果显示最流行的PHP框架前三甲为:Laravel.Ph ...
- Java源码——HashMap的源码分析及原理学习记录
学习HashMap时,需要带着这几个问题去,会有很大的收获: 一.什么是哈希表 二.HashMap实现原理 三.为何HashMap的数组长度一定是2的次幂? 四.重写equals方法需同时重写hash ...
- 高级字符驱动之堵塞与非堵塞IO
/** *此实例涉及到线程的挂起与竞态,字符IO的堵塞与非堵塞 */ struct scull_pipe { wait_queue_head_t inp, outp; char *buffer, *e ...
- JZOJ 3388. 【NOIP2013模拟】绿豆蛙的归宿
3388. [NOIP2013模拟]绿豆蛙的归宿 (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Detailed Limi ...
- Hive如何根据表中某个字段动态分区
使用hive储存数据时,需要对做分区,如果从kafka接收数据,将每天的数据保存一个分区(按天分区),保存分区时需要根据某个字段做动态分区,而不是傻傻的将数据写到某一个临时目录最后倒入到某一个分区,这 ...