前言:
前面说了数据库的连接查询,现在说数据库的增删改。这里引入一个数据库的实体类,就是将当前数据库的某一个表里面所有字段写成实体类,如下:

1.数据库的实体类:

需要项目里下载Chloe.dll和Chloe.Mysql.dll,如下:

例如有表如下:

它的实体类就是:

  1. using System;
  2. using Chloe.Entity;
  3. using Chloe.Annotations;
  4. namespace WpfApp1
  5. {
  6. /// <summary>
  7. /// 实体类tb_a。(属性说明自动提取数据库字段的描述信息)
  8. /// </summary>
  9. [TableAttribute("tb_a")]
  10. [Serializable]
  11. public partial class Tb_A
  12. {
  13. #region Model
  14. private int _ID;
  15. private string _Name;
  16. private int? _Age;
  17. private int? _Sex;
  18. /// <summary>
  19. /// ID
  20. /// </summary>
  21. [ColumnAttribute(IsPrimaryKey = true)]
  22. public int ID
  23. {
  24. get { return _ID; }
  25. set
  26. {
  27. this._ID = value;
  28. }
  29. }
  30. /// <summary>
  31. /// 名字
  32. /// </summary>
  33. public string Name
  34. {
  35. get { return _Name; }
  36. set
  37. {
  38. this._Name = value;
  39. }
  40. }
  41. /// <summary>
  42. /// 年龄
  43. /// </summary>
  44. public int? Age
  45. {
  46. get { return _Age; }
  47. set
  48. {
  49. this._Age = value;
  50. }
  51. }
  52. /// <summary>
  53. /// 性别
  54. /// </summary>
  55. public int? Sex
  56. {
  57. get { return _Sex; }
  58. set
  59. {
  60. this._Sex = value;
  61. }
  62. }
  63. #endregion
  64. }
  65. }

2.增加一行数据:

封装一下IDbConnectionFactory。

  1. public class MySqlConnectionFactory : IDbConnectionFactory
  2. {
  3. string _connString = null;
  4. public MySqlConnectionFactory(string connString)
  5. {
  6. this._connString = connString;
  7. }
  8. public IDbConnection CreateConnection()
  9. {
  10. IDbConnection conn = new MySqlConnection(this._connString);
  11. return conn;
  12. }
  13. }

插入一行数据方法:

  1. internal static bool InsertNewData(Tb_A Model, out long lID)
  2. {
  3. MySqlContext context = new MySqlContext(new MySqlConnectionFactory("host = 数据库IP; Port = 数据库端口; Database = 数据库名; uid = 数据库账户; pwd = 数据库密码; Charset = utf8; Allow User Variables = true"));
  4. using (MySqlContext dx = context)
  5. {
  6. IQuery<Tb_A> q = dx.Query<Tb_A>();
  7. lID = dx.Insert<Tb_A>(Model).ID;
  8. return true;
  9. }
  10. }

调用:

  1. private void Button_Click(object sender, RoutedEventArgs e)
  2. {
  3. Tb_A Model = new Tb_A()
  4. {
  5. Age = 18,
  6. Name = "张三",
  7. Sex = 1,
  8. };
  9. long ID = 0;
  10. InsertNewData(Model,out ID);
  11. }

结果:

3.修改某一行数据:

方法:

  1. internal static bool UpdateName(string name,long ID)
  2. {
  3. try
  4. {
  5. MySqlContext context = new MySqlContext(new MySqlConnectionFactory("host = 数据库IP; Port = 数据库端口; Database = 数据库名; uid = 数据库账户; pwd = 数据库密码; Charset = utf8; Allow User Variables = true"));
  6. using (MySqlContext dx = context)
  7. {
  8. return dx.Update<Tb_A>(a => a.ID == ID, a => new Tb_A()
  9. {
  10. Name = name,
  11. }) >= 0;
  12. }
  13. }
  14. catch (Exception)
  15. {
  16. return false;
  17. }
  18. }

调用:

  1. private void Button_Click(object sender, RoutedEventArgs e)
  2. {
  3. Tb_A Model = new Tb_A()
  4. {
  5. Age = 18,
  6. Name = "张三",
  7. Sex = 1,
  8. };
  9. long ID = 1;
  10. UpdateName("李四" , ID);
  11. }

结果:

C#访问MySQL(二):数据插入与修改(增改)的更多相关文章

  1. MySQL数据库表的数据插入、修改、删除、查询操作及实例应用

    一.MySQL数据库表的数据插入.修改.删除和查询 CREATE DATABASE db0504; USE db0504; CREATE TABLE student ( sno ) NOT NULL ...

  2. MySQL数据库数据存放位置修改

    MySQL数据库数据存放位置修改 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方 ...

  3. navicat for Mysql查询数据不能直接修改

    navicat for Mysql查询数据不能直接修改 原来的sql语句: <pre> select id,name,title from table where id = 5;</ ...

  4. TOAD FOR MYSQL 进行数据插入时乱码的解决办法---MariaDB 5.5

    最近使用mysql是发现插入的数据乱码,几经周折终于找到的解决方法,特作备忘. 开始有将mysql的字符集全部设置成utf8,如下: SHOW VARIABLES LIKE 'character_se ...

  5. 解决 C++ 操作 MySQL 大量数据插入效率低下问题

    往 Mysql 中,插入10000条简单数据.速度很缓慢,竟然要5分钟左右, 可是打开事务的话.一秒不到就搞定了 代码: #include <iostream> #include < ...

  6. 关于mybatis用mysql时,插入返回自增主键的问题

    公司决定新项目用mybatis,虽然这个以前学过但是一直没用过都忘得差不多了,而且项目比较紧,也没时间去系统点的学一学,只好很粗略的百度达到能用的程度就行了. 其中涉及到插入实体要求返回主键id的问题 ...

  7. mysql 自动记录数据插入及最后修改时间

    总结: `uptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 原文 应用场景: 1.在数据 ...

  8. oracle数据库之数据插入、修改和删除

    作为一合格的测试人员对数据库的单表查询.多表查询.分组查询.子查询等等这些基本查询方法还是要会的.不然到企业中,容易被一些人鄙视,或者说如果数据库学不好,表查不明白,那么对自己能力来说也是一种侮辱,因 ...

  9. mysql DML 数据插入,删除,更新,回退

    mysql插入,删除,更新地址:https://wenku.baidu.com/view/194645eef121dd36a32d82b1.html http://www.cnblogs.com/st ...

  10. MySQL之JDBC插入、修改、删除封装集于一个方法

    1. 先建四个包 ① com.tz.entity 实体包 ② com.tz.dao 数据访问层包 -> com.tz.dao.impl 实现包 ③ com.tz.util 工具类包 ④ com. ...

随机推荐

  1. 基于Vue项目+django写一个登录的页面

    基于Vue项目+django写一个登录的页面 前端 借用了一下vue项目模板的AboutView.vue 页面组件 <template> <div class="about ...

  2. linux中用crontab定时任务启动jar无效

    修改前脚本内容如下: #!/bin/bash nohup java -Xms512m -Xmx512m -jar /opt/jar/xx-0.0.1-SNAPSHOT.jar & 检查了各方面 ...

  3. Docker CLI docker buildx 常用命令

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化.Docker是内核 ...

  4. Java pom阿里云插件

    <pluginRepositories> <pluginRepository> <id>alimaven spring plugin</id> < ...

  5. class_man

    #!/usr/bin/python # -*- coding: UTF-8 -*- class Man():          def __init__(self, name="" ...

  6. Educational Codeforces Round 112 (Rated for Div

    Educational Codeforces Round 112 (Rated for Div. 2) CodeForces - 1555D Say No to Palindromes 如果一个字符串 ...

  7. 最小化安装debian10&gnome最小化安装

    直到后面配置网络源之前都是断网安装,因为debian security好像总是要去总源找点东西,所以即便你选择国内源甚至不选择网络源安装,依然会莫名 的失败. I. 最小化安装debian10(用ro ...

  8. pytest学习总结

    官方pytest文档:Full pytest documentation - pytest documentation 一.pytest以及辅助插件的安装 1.pytest安装 pip install ...

  9. 怎么才能卸载inventor?完全彻底卸载删除干净inventor各种残留注册表和文件的方法和步骤

    怎么才能卸载inventor?完全彻底卸载删除干净inventor各种残留注册表和文件的方法和步骤.如何卸载inventor呢?有很多同学想把inventor卸载后重新安装,但是发现inventor安 ...

  10. 直接使用Arrays.asList()转数组,转变类型实际为AbstractList

    1.直接将数组转换为list时List的类型为AbstractList public static void main(String[] args) { String[] arr = {"A ...