ADO.NET操作MySQL数据库
前言
ADO.NET包括5大对象,分别是Connection、Command、DataReader、DataSet、DataAdapter,使用ADO.NET访问数据库有两个步骤:建立数据库连接、读取或更新数据。读取数据主要有两种方法:Command与DataReader、DataAdapter与DataSet。
连接mysql数据库准备工作
第一步:建立数据库连接
1.定义全局变量
- //创建command对象
- private MySqlCommand cmd = null;
- //创建connection连接对象
- private MySqlConnection conn = null;
2.建立数据库连接
- //数据库连接字符串
- String connstr = "server=localhost;Database =test;uid=root;pwd=1;charset=utf8";
- //建立数据库连接
- conn = new MySqlConnection(connstr);
第二步:读取数据
1.command和DataReader对象读取数据
- MySqlDataReader reader = null;
- try
- {
- conn.Open(); //②打开数据库连接
- cmd = new MySqlCommand("select * from comment", conn); //③使用指定的SQL命令和连接对象创建SqlCommand对象
- reader = cmd.ExecuteReader(); //④执行Command的ExecuteReader()方法
- //⑤将DataReader绑定到数据控件中
- DataTable dt = new DataTable();
- dt.Load(reader);
- dataGridView1.DataSource = dt;
- }catch (Exception){
- throw;
- }finally{
- //⑥关闭DataReader
- reader.Close();
- //⑦关闭连接
- conn.Close();
- }
2.DataSet和DataAdapter对象读取数据
- try
- {
- string mysqlText = "select * from comment;";
- //使用指定的SQL命令和连接对象创建SqlDataAdapter对象
- MySqlDataAdapter mysda = new MySqlDataAdapter(mysqlText, conn);
- DataSet ds = new DataSet(); //创建DataSet对象
- //使用SqlDataAdapter的Fill方法填充DataSet mysda.Fill(ds, "comment");
- //将DataSet中的表绑定到数据控件中
- BindingSource bs;
- bs = new BindingSource();
- bs.DataSource = ds.Tables["comment"];
- dataGridView1.DataSource = bs;
- }
- catch (Exception) {
- throw;
- }
第三步:更新数据
1.command对象更新数据
- //数据库连接字符串
- String connstr = "server=localhost;Database =test;uid=root;pwd=1;charset=utf8";
- //建立数据库连接
- using (conn = new MySqlConnection(connstr))
- {
- conn.Open();
- //启动一个事务
- using (MySqlTransaction transaction = conn.BeginTransaction())
- {
- using (cmd=conn.CreateCommand())
- {
- try
- {
- cmd.Transaction = transaction; //为命令指定事务
- cmd.CommandText = "insert into comment(quantity,comment) value('11','很好');";
- cmd.ExecuteNonQuery();
- cmd.CommandText = "insert into comment(quantity,comment) value('12','很好');";
- cmd.ExecuteNonQuery();
- transaction.Commit(); //事务提交
- }
- catch (Exception)
- {
- transaction.Rollback(); //事务回滚
- }
- }
- }
- }
2.DataAdapter对象更新数据
- <span style="font-size:18px;">//数据库连接字符串
- String connstr = "server=localhost;Database =test;uid=root;pwd=1;charset=utf8";
- //建立数据库连接
- conn = new MySqlConnection(connstr);
- try
- {
- //comment是表名,quantity是字段名
- string mysqlText = "select * from comment;";
- MySqlDataAdapter mysda = new MySqlDataAdapter(mysqlText, conn);
- DataSet ds = new DataSet();
- mysda.Fill(ds, "comment");
- //绑定MySqlDataAdapter对象,自动生成从DataSet更新MySql的命令
- MySqlCommandBuilder cb = new MySqlCommandBuilder(mysda);
- //更新ds中的数据
- ds.Tables["comment"].Rows[0]["quantity"] = 111;
- //更新数据库中的数据
- mysda.Update(ds, "comment");
- }
- catch (Exception)
- {
- throw;
- }</span>
总结
ADO.NET操作MySQL数据库的更多相关文章
- 以ADO形式操作mysql数据库
首先得需要一个连接mysql的helper类: public class MySqlHelper { #region [ Connection ] public static string conne ...
- Code First操作Mysql数据库
前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...
- C++操作Mysql数据库/Linux下
本文链接:https://blog.csdn.net/Tanswer_/article/details/72796570想用C++写项目,数据库是必须的,所以这两天学了一下C++操作Mysql数据库的 ...
- PHP操作MySQL数据库5个步骤
PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- 转 用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语言 一.前言 ...
- JDBC操作MySQL数据库案例
JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- shell脚本操作mysql数据库
shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改.查)等各种操作 mysql -hhostname -Pport -uusername -pp ...
随机推荐
- Kali-linux使用Nessus
Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它.该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库.Nessus不同于传统的漏洞扫描软件,Nessus可同时在 ...
- vim全选复制粘贴
感谢来源:http://blog.sina.com.cn/s/blog_6e70abbd0100zbk9.html ggVG #gg: 光标跳转到首行,在vim才有效,vi中无效 #V 是进入Visu ...
- nginx开启gzip
gzip on; gzip_min_length 5k; gzip_buffers 4 16k; #gzip_http_version 1.0; gzip_comp_level 3; gzip_typ ...
- Shell笔记-01
打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码: #!/bin/bash ...
- POJ 1182 食物链(经典带权并查集 向量思维模式 很重要)
传送门: http://poj.org/problem?id=1182 食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: ...
- Java clone() 浅克隆与深度克隆
内容转自:http://www.blogjava.net/orangelizq/archive/2007/10/17/153573.html 现在Clone已经不是一个新鲜词语了,伴随着“多莉”的产生 ...
- php版本低更换php版本-问题以解决
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable ...
- 转发: Angular装饰器
Angular中的装饰器是一个函数,它将元数据添加到类.类成员(属性.方法)和函数参数. 用法:要想应用装饰器,把它放在被装饰对象的上面或左边. Angular使用自己的一套装饰器来实现应用程序各部件 ...
- standby_file_management 参数为manual 导致ORA-01111问题
情景: Dataguard 物理备库执行恢复报错: Errors in file /home/u01/app/diag/rdbms/rzorcl11g/ORCL/trace/ORCL_pr00_358 ...
- 学习Java的知识体系路线(详细完整版,附图加目录)
将网上的Java学习路线图进行归纳囊括,方便以后学习时弥补自身所欠缺的知识点,也算是给自己一个明确的学习方向.至于第一阶段,即JavaSE的基础,这里不给出. 第二阶段 技术名称 技术内容 数据库技术 ...