1、入行好几年了,工作中使用数据库几率很小(传统行业)。借着十一假期回家机会,学习下数据库。

2、初次了解数据库相关知识,如果本文有误,还望告知。

3、本文主要目的,记录下wpf界面显示数据库信息,且可进行删除、修改、插入命令。并反馈数据到MySQL。做个记录,以便以后工作中使用到时没个头绪。

4、MySQL的基本讲解不再介绍,安装过程什么的,我也是按照网上教程一步一步进行的,假定MySQL已安装成功,且新建有数据库,见下图:

废话不多说,直接上代码

界面代码xaml

后端代码cs

public partial class MainWindow : Window

{

//SQLBulkCopy

Random rd = new Random();

string sqlstr = "Data Source=127.0.0.1;User ID=root;Password=root;DataBase=test;Charset=utf8;";

MySql.Data.MySqlClient.MySqlConnection con;

MySql.Data.MySqlClient.MySqlDataAdapter adapter;

System.Data.DataSet ds;

System.Data.DataTable dt;

public MainWindow()

{

InitializeComponent();

UpdateMySQLData();

}

private void DataGrid_LoadingRow(object sender, System.Windows.Controls.DataGridRowEventArgs e)

{

e.Row.Header = e.Row.GetIndex() + 1;

}

private void UpdateMySQLData()

{

if (con == null)

{

con = new MySql.Data.MySqlClient.MySqlConnection(sqlstr);

con.Open();

}

if (adapter == null)

{

adapter = new MySql.Data.MySqlClient.MySqlDataAdapter("select * from user", con);

}

if (ds == null)

{

ds = new System.Data.DataSet();

}

ds.Clear();

adapter.Fill(ds, "user");

if (dt == null)

{

dt = ds.Tables["user"];

}

DataGrid1.ItemsSource = dt.DefaultView;

}

private void DeleteButton_Click(object sender, RoutedEventArgs e)

{

int index = DataGrid1.SelectedIndex;

if (index == -1) return;

#if MySQLCommand

string DeleteSqlCommand = string.Format("delete from user where id = '{0}'", dt.Rows[index]["id"]);

MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(DeleteSqlCommand, con);

cmd.ExecuteNonQuery();

UpdateMySQLData();

#else

dt.Rows[index].Delete();

//dt.Rows.RemoveAt(index);==dt.Rows[index].Delete() + dt.AcceptChanges()

MySql.Data.MySqlClient.MySqlCommandBuilder builder = new MySql.Data.MySqlClient.MySqlCommandBuilder(adapter);

adapter.Update(dt);

dt.AcceptChanges();

#endif

}

private void UpdateButton_Click(object sender, RoutedEventArgs e)

{

#if MySQLCommand

int index = DataGrid1.SelectedIndex;

string UpdateSqlCommand = string.Format("update user set id = '{0}', name = '{1}', phone = '{2}', email = '{3}' where id = '{0}'",

dt.Rows[index]["id"], dt.Rows[index]["name"], dt.Rows[index]["phone"], dt.Rows[index]["email"]);

MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(UpdateSqlCommand, con);

cmd.ExecuteNonQuery();

UpdateMySQLData();

#else

MySql.Data.MySqlClient.MySqlCommandBuilder builder = new MySql.Data.MySqlClient.MySqlCommandBuilder(adapter);

adapter.Update(dt);

dt.AcceptChanges();

#endif

}

private void InsertButton_Click(object sender, RoutedEventArgs e)

{

#if MySQLCommand

string InsertSqlCommand = string.Format("insert into user(id, name, phone,email) values('{0}','{1}','{2}','{3}')", rd.Next(100), "ZhangSan", 12332112345, "zhangsan@qq.com");

MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(InsertSqlCommand, con);

cmd.ExecuteNonQuery();

string InsertSqlCommand2 = string.Format("insert into user(id, name, phone,email) values('{0}','{1}','{2}','{3}')", rd.Next(100), "LiSi", 12332112345, "lisi@yahoo.com");

MySql.Data.MySqlClient.MySqlCommand cmd2 = new MySql.Data.MySqlClient.MySqlCommand(InsertSqlCommand2, con);

cmd2.ExecuteNonQuery();

UpdateMySQLData();

#else

System.Data.DataRow dr = dt.NewRow();

dr[0] = rd.Next(100);

dr[1] = "ZhangSan";

dr[2] = "12332112345";

dr[3] = "zhangsan@qq.com";

dt.Rows.Add(dr);

System.Data.DataRow dr2 = dt.NewRow();

dr2[0] = rd.Next(100);

dr2[1] = "LiSi";

dr2[2] = "12332154321";

dr2[3] = "lisi@yahoo.com";

dt.Rows.Add(dr2);

MySql.Data.MySqlClient.MySqlCommandBuilder builder = new MySql.Data.MySqlClient.MySqlCommandBuilder(adapter);

adapter.Update(ds, "user");

dt.AcceptChanges();

#endif

}

}

软件打开界面

datagrid显示mysql_WPF DataGrid显示MySQL查询信息,且可删除、修改、插入 (原发布 csdn 2018-10-13 20:07:28)...相关推荐

  1. MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据

    MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据 目录导航: 开发背景: 实战: 表结构如下图所示: 操作: 总结: 回到顶部 开发背景: 最近在做一个批量数据导入到MySQL数据 ...

  2. MYSQL查询事务并强制删除

    MYSQL查询事务并强制删除 SELECT * from information_schema.INNODB_TRX KILL trx_mysql_thread_id(该字段) ; 暴力全部删除 se ...

  3. MySQL查询重复字段,及删除重复记录的方法

    MySQL查询重复字段,及删除重复记录的方法(转) Submitted by wiley on Thu, 09/03/2009 - 09:36 [教学] MySQL查询重复字段,及删除重复记录的方法 ...

  4. python去重复的数据_Python中mysql查询重复数据并删除重复数据

    #coding:utf-8 import mysql.connector mydb = mysql.connector.connect( host='localhost', user='root', ...

  5. php mysql 查询每隔一段时间插入的数据_SQL查询某个时间段共多少条数据

    Linux下的C编程实战 Linux下的C编程实战(一) ――开发平台搭建 1.引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳 ...

  6. mysql 1z0_MySQL 8 OCP(1Z0-908)认证考试题库原题(第10题)

    Mysql 8.0 OCP认证考试原题题库整理(CUUG内部资料)-第10题 Choose the best answer. Examine these commands, which execute ...

  7. ADOQuery 查询 删除 修改 插入

    //利用combobox组件查询数据库表 procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery1.Close; ADOQuery ...

  8. mysql 查询最早 表,【MySQL】MySQL查询表的创建时间

    MySQL 数据库建库语句 CREATE DATABASE IF NOT EXISTS databasename DEFAULT CHARSET utf8 COLLATE utf8_general_c ...

  9. MySql增加用户、授权、修改密码等语句

    2019独角兽企业重金招聘Python工程师标准>>> 1.新建用户.  //登录MYSQL  @>mysql -u root -p  @>密码  //创建用户  mys ...

最新文章

  1. java测试类 main方法_Java使用agent实现main方法之前的实例详解
  2. PXE网络引导装机原理介绍
  3. 使用Git工具生成公钥与私钥
  4. Vue——Vue-Router的push和replace方法[Uncaught (in promise) Error]解决方案
  5. 【Elasticsearch】如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 2 部分: 多字段
  6. OpenShift 4 Hands-on Lab (12) 通过 KubeFed 配置 OpenShift 联邦集群
  7. 自实现进程管理器linux,【Linux工具篇】supervisor进程管理器
  8. java方法:flush()
  9. c++中的模板_C ++中的模板
  10. 5.1 API : SVC
  11. python检查exe运行是否报错_python打包成exe格式后,在部分机子上没法运行
  12. iOS开发 字体适配
  13. Keil (MDK)中变量定义位置
  14. 毕业设计(毕设)目标和要求 (以计算机软件毕业设计为例)
  15. android安装出现问题怎么解决方案,安卓手机安装软件提示解析程序包时出现问题怎么解决...
  16. ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST
  17. 原生js做购物车全选选中商品显示价格和小计的计算
  18. cdr 表格自动填充文字_当文字内容太多excel单元格盛不下应该怎么做
  19. SPFA算法(最短路径)
  20. 华为鸿蒙麒麟玉兔_华为注册了整本《山海经》的商标?“鸿蒙”操作系统成功申请...

热门文章

  1. 中动态路径加载_GOT段在linux系统中实现代码动态加载的作用和其他段的说明
  2. js 解除网页右键菜单被禁用
  3. ActiveMQ Cannot send, channel has already failed: tcp:127.0.0.1:8161
  4. (转)spring中的拦截器(HandlerInterceptor+MethodInterceptor)
  5. android TextView下划线,圆角边框,数逐字显示,虚线边框, 渐变色背景框, 阴影背景框
  6. php 垂直搜死哦,垂直搜索(Vertical Search)的详细介绍
  7. mac 删除php56 安装php72,mac php56升级php70
  8. java——获取视频某一帧的图片
  9. java 2分代复制垃圾回收_Java对象的后事处理——垃圾回收(二)
  10. java date转sql date_java.util.Date和java.sql.Date转换(转)