ado.net mysql_ADO.NET操作MySQL数据库

ADO.NET操作MySQL数据库

ADO.NET包括五大对象,分别是Connection、Command、DataReader、DataSet、DataAdapter,使用ADO.NET访问数据库有两个步骤:建立数据库连接、读取或更新数据。读取数据主要有两种方法:Command与DataReader、DataAdapter与DataSet。

一、建立数据库连接

(1)定义全局变量

//创建command对象

private MySqlCommand cmd = null;//创建connection连接对象

private MySqlConnection conn = null;

(2)建立数据库连接

//数据库连接字符串

String connstr = "server=localhost;Database =test;uid=root;pwd=‘’;charset=utf8";//建立数据库连接

conn = new MySqlConnection(connstr);

二、读取数据

(1)Command和DataReader对象读取数据

说明:

DataReader对象对数据库检索数据提供只读的向前指针。DataReader是抽象类,不可以直接实例化,所以在使用前需要先创建Command对象,然后在创建DataReader对象,这种方式是只读的,所以不可以对其进行修改。

读取数据过程:

1.创建连接

2.打开连接

3.创建Command对象

4.执行Command的ExcuteReader()方法

5.将DataReader绑定到数据控件中

6.关闭DataReader

7.关闭连接

代码展示:

MySqlDataReader reader = null;try{

conn.Open();//②打开数据库连接

cmd = new MySqlCommand("select * from comment", conn); //③使用指定的SQL命令和连接对象创建SqlCommand对象

reader = cmd.ExecuteReader(); //④执行Command的ExecuteReader()方法//⑤将DataReader绑定到数据控件中

DataTable dt = newDataTable();

dt.Load(reader);

dataGridView1.DataSource=dt;

}catch(Exception){throw;

}finally{//⑥关闭DataReader

reader.Close();//⑦关闭连接

conn.Close();

}

(2)DataSet和DataAdapter对象读取数据

说明:

DataAdapter是DataSet与数据库之间的媒介,DataAdapter打开一个连接并执行相应的mysql语句,DataSet相当于一个小型的数据库,可以存储很多个表,DataSet是一个集合对象,我们可以读取DataSet中的数据,并且可以更新其中的数据。

读取数据的过程:

1.创建连接

2.创建DataAdapter对象

3.创建DataSet对象

4.执行DataAdapter对象的Fill()方法

5.将DataSet中的表绑定到数据控件中

代码展示:

try{string mysqlText = "select * from comment;";//使用指定的SQL命令和连接对象创建SqlDataAdapter对象

MySqlDataAdapter mysda = newMySqlDataAdapter(mysqlText, conn);

DataSet ds= new DataSet(); //创建DataSet对象//使用SqlDataAdapter的Fill方法填充DataSet mysda.Fill(ds, "comment");//将DataSet中的表绑定到数据控件中

BindingSource bs;

bs= newBindingSource();

bs.DataSource= ds.Tables["comment"];

dataGridView1.DataSource=bs;

}catch(Exception) {throw;

}

第三步、更新数据

(1)command对象更新数据

说明:

事物是一组由相关任务组成的单元,该单元中的任务要么全部成功,要么全部失败。若失败,则全部回滚,事物的四个特性(ACID)分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)。

代码展示:

//数据库连接字符串

String connstr = "server=localhost;Database =test;uid=root;pwd=1;charset=utf8";//建立数据库连接

using (conn = newMySqlConnection(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对象更新数据

//数据库连接字符串

String connstr = "server=localhost;Database =test;uid=root;pwd=1;charset=utf8";//建立数据库连接

conn = newMySqlConnection(connstr);try{//comment是表名,quantity是字段名

string mysqlText = "select * from comment;";

MySqlDataAdapter mysda= newMySqlDataAdapter(mysqlText, conn);

DataSet ds= newDataSet();

mysda.Fill(ds,"comment");//绑定MySqlDataAdapter对象,自动生成从DataSet更新MySql的命令

MySqlCommandBuilder cb = newMySqlCommandBuilder(mysda);//更新ds中的数据

ds.Tables["comment"].Rows[0]["quantity"] = 111;//更新数据库中的数据

mysda.Update(ds, "comment");

}catch(Exception)

{throw;

}

总结:

1.DataReader对象读取数据库中数据只能一条条读取,并且是只读的,不可以修改;DataSet与DataAdapter对象读取的数据可以读取且可以修改,DataSet中可以存放很多表。

2.DataReader读取数据前需要手动写代码连接数据库,即conn.open(),查询完毕后需要手动写代码关闭数据库连接;DataSet与DataAdapter对象读取数据前不需要手动写代码连接数据库,会自动识别,若数据库连接没开,则开启,如果没有关闭,则自动关闭。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值