C#访问MySQL(二):数据插入与修改(增改)
前言:
前面说了数据库的连接查询,现在说数据库的增删改。这里引入一个数据库的实体类,就是将当前数据库的某一个表里面所有字段写成实体类,如下:
1.数据库的实体类:
需要项目里下载Chloe.dll和Chloe.Mysql.dll,如下:
例如有表如下:

它的实体类就是:
using System;
using Chloe.Entity;
using Chloe.Annotations;
namespace WpfApp1
{
/// <summary>
/// 实体类tb_a。(属性说明自动提取数据库字段的描述信息)
/// </summary>
[TableAttribute("tb_a")]
[Serializable]
public partial class Tb_A
{
#region Model
private int _ID;
private string _Name;
private int? _Age;
private int? _Sex;
/// <summary>
/// ID
/// </summary>
[ColumnAttribute(IsPrimaryKey = true)]
public int ID
{
get { return _ID; }
set
{
this._ID = value;
}
}
/// <summary>
/// 名字
/// </summary>
public string Name
{
get { return _Name; }
set
{
this._Name = value;
}
}
/// <summary>
/// 年龄
/// </summary>
public int? Age
{
get { return _Age; }
set
{
this._Age = value;
}
}
/// <summary>
/// 性别
/// </summary>
public int? Sex
{
get { return _Sex; }
set
{
this._Sex = value;
}
}
#endregion
}
}
2.增加一行数据:
封装一下IDbConnectionFactory。
public class MySqlConnectionFactory : IDbConnectionFactory
{
string _connString = null;
public MySqlConnectionFactory(string connString)
{
this._connString = connString;
}
public IDbConnection CreateConnection()
{
IDbConnection conn = new MySqlConnection(this._connString);
return conn;
}
}
插入一行数据方法:
internal static bool InsertNewData(Tb_A Model, out long lID)
{
MySqlContext context = new MySqlContext(new MySqlConnectionFactory("host = 数据库IP; Port = 数据库端口; Database = 数据库名; uid = 数据库账户; pwd = 数据库密码; Charset = utf8; Allow User Variables = true"));
using (MySqlContext dx = context)
{
IQuery<Tb_A> q = dx.Query<Tb_A>();
lID = dx.Insert<Tb_A>(Model).ID;
return true;
}
}
调用:
private void Button_Click(object sender, RoutedEventArgs e)
{
Tb_A Model = new Tb_A()
{
Age = 18,
Name = "张三",
Sex = 1,
};
long ID = 0;
InsertNewData(Model,out ID);
}
结果:

3.修改某一行数据:
方法:
internal static bool UpdateName(string name,long ID)
{
try
{
MySqlContext context = new MySqlContext(new MySqlConnectionFactory("host = 数据库IP; Port = 数据库端口; Database = 数据库名; uid = 数据库账户; pwd = 数据库密码; Charset = utf8; Allow User Variables = true"));
using (MySqlContext dx = context)
{
return dx.Update<Tb_A>(a => a.ID == ID, a => new Tb_A()
{
Name = name,
}) >= 0;
}
}
catch (Exception)
{
return false;
}
}
调用:
private void Button_Click(object sender, RoutedEventArgs e)
{
Tb_A Model = new Tb_A()
{
Age = 18,
Name = "张三",
Sex = 1,
};
long ID = 1;
UpdateName("李四" , ID);
}
结果:

C#访问MySQL(二):数据插入与修改(增改)的更多相关文章
- MySQL数据库表的数据插入、修改、删除、查询操作及实例应用
一.MySQL数据库表的数据插入.修改.删除和查询 CREATE DATABASE db0504; USE db0504; CREATE TABLE student ( sno ) NOT NULL ...
- MySQL数据库数据存放位置修改
MySQL数据库数据存放位置修改 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方 ...
- navicat for Mysql查询数据不能直接修改
navicat for Mysql查询数据不能直接修改 原来的sql语句: <pre> select id,name,title from table where id = 5;</ ...
- TOAD FOR MYSQL 进行数据插入时乱码的解决办法---MariaDB 5.5
最近使用mysql是发现插入的数据乱码,几经周折终于找到的解决方法,特作备忘. 开始有将mysql的字符集全部设置成utf8,如下: SHOW VARIABLES LIKE 'character_se ...
- 解决 C++ 操作 MySQL 大量数据插入效率低下问题
往 Mysql 中,插入10000条简单数据.速度很缓慢,竟然要5分钟左右, 可是打开事务的话.一秒不到就搞定了 代码: #include <iostream> #include < ...
- 关于mybatis用mysql时,插入返回自增主键的问题
公司决定新项目用mybatis,虽然这个以前学过但是一直没用过都忘得差不多了,而且项目比较紧,也没时间去系统点的学一学,只好很粗略的百度达到能用的程度就行了. 其中涉及到插入实体要求返回主键id的问题 ...
- mysql 自动记录数据插入及最后修改时间
总结: `uptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 原文 应用场景: 1.在数据 ...
- oracle数据库之数据插入、修改和删除
作为一合格的测试人员对数据库的单表查询.多表查询.分组查询.子查询等等这些基本查询方法还是要会的.不然到企业中,容易被一些人鄙视,或者说如果数据库学不好,表查不明白,那么对自己能力来说也是一种侮辱,因 ...
- mysql DML 数据插入,删除,更新,回退
mysql插入,删除,更新地址:https://wenku.baidu.com/view/194645eef121dd36a32d82b1.html http://www.cnblogs.com/st ...
- MySQL之JDBC插入、修改、删除封装集于一个方法
1. 先建四个包 ① com.tz.entity 实体包 ② com.tz.dao 数据访问层包 -> com.tz.dao.impl 实现包 ③ com.tz.util 工具类包 ④ com. ...
随机推荐
- Robot-Framework 基础操作和常用的语法
1.打开浏览器 Open Browser 2.浏览器最大化 Maximize Browser Window 3.关闭浏览器 Test Teardown Close Browser 4.输入文本框 I ...
- Go--求数组奇偶数之和
package main //申明main包 import "fmt" // 导入fmt标准库 func main() { arr := [...]int{01, 11, 22, ...
- Jmeter学习:字符串,加密相关函数,groovy脚本函数
一.__digest 功能介绍: 将输入进行 MD5 加密 ${__MD5(参数 1,参数 2)} 参数 1:加密算法,必选,MD2 MD5 SHA-1 SHA-224 SHA-256 SHA-384 ...
- API对象--Ingress(chrono《kubernetes入门实战课》笔记整理)
[概念说明] Service 的功能和运行机制,主要由 kube-proxy 控制的四层负载均衡,即根据IP.PORT来做负载均衡.而很多应用都是在7层做均衡更为合理,比如根据主机名.URI.请求头. ...
- usb 2.0 packet
注意PID[7:0] = {~pid[3:0], pid[3:0]}
- Linux 系统镜像分类和包管理工具
查看系统版本 cat /proc/version 可以看到如下返回,Linux是RedHat系统 Linux version 4.18.0-372.9.1.el8.x86_64 (mockbuild@ ...
- csp-s2020 T2 动物园
题目简述: 共有n个动物,m条要求,每条要求描述了第x位上是1的话,必须购买y饲料,动物园里已有的动物必须的饲料已经购买了,问题是:在不要求增加购买饲料的基础上,还能放进去多少种动物?共有k个二进制, ...
- centons7.2 双网口聚合功能配置和验证
1.启动网络管理器运行systemctl restart NetworkManager2.创建主备绑定连接 nmcli connection add con-name bond0 type bond ...
- MXPlayer使用第三方解码器
MXPlayer内置解码没法播放EAC3音频,可以添加第三方解码器解决 https://github.com/USBhost/MX_FFmpeg 不清楚自己什么平台选择mx_aio.zip,在MXPl ...
- ubuntu20.04系统openjdk11变更openjdk-8-jdk
ubuntu20.04系统openjdk11变更openjdk-8-jdk一.卸载openjdk11先检查是否安装,命令:dpkg --list | grep -i jdk移除openjdk包,命令: ...