语言吧技术网欢迎您投稿,程序员的世界我懂你!=====>点此登录投搞
当前位置: 首页 >>数据库 >>MYSQL >>ADO.NET操作MySQL数据库

ADO.NET操作MySQL数据库

2018/10/10 11:22:11 0人评论 238次 作者:admin

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 = new DataTable();   

    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 = 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对象更新数据


说明:


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


代码展示:



//数据库连接字符串  

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>  


总结:


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


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


上一篇:MySQLHelper

下一篇:ADO.Net连接Mysql

相关文章

CopyRight:2007-2018 语言吧 备案ICP:湘ICP备09009000号-4 http://www.yuyanba.com
分享按钮