C#mysql数据操作

来源:互联网 发布:怎么用淘宝客买东西 编辑:程序博客网 时间:2024/06/03 19:57

1、下载并添加引用MySql.Data.dll和MySql.Data.Entity.dll

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using MySql.Data.MySqlClient;using MySql.Data;namespace sql_test{    class Program    {        static void Main(string[] args)        {                        //SqlConnect();            //SqlCommad();            //SqlQuery();            //CmdQuery();            cunchu();            Console.ReadKey();        }  #region 数据库连接        /// <summary>        /// 数据库连接        /// </summary>        static void SqlConnect()        {               //1.连接通道的连接字符串            string constr = @"server=localhost;database=testsql;UID=root;PWD=123456;";              //2.连接通道对象            MySqlConnection conn = new MySqlConnection(constr);              //3.打开通道            conn.Open();              //4.关闭通道            conn.Close();            Console.WriteLine("连接对象新建操作成功");        }  #endregion         #region 增删改        static void SqlCommad()        {            int res = 0;            //1.连接通道的连接字符串            string constr = @"server=localhost;database=testsql;UID=root;PWD=123456;";            //2.连接通道对象            MySqlConnection conn = new MySqlConnection(constr);            //3.准备新增指令            /*insert into            string SqlCommad = @"insert into student_xinxi (student_ID,adress_省份,adress_详细地址,phone,身份证号)  values ('07008201016','广西南宁','武鸣区双桥镇',135339274,'450122198812141655');                                 insert into student_xinxi (student_ID,adress_省份,adress_详细地址,phone,身份证号)  values ('07008201017','广西南宁','武鸣区双桥镇',135339634,'450122198812141655');";*/            /*update             string SqlCommad = @"UPDATE student_xinxi SET phone=18922205 where student_ID='07008201016';";*/            //delete            string SqlCommad = @"DELETE FROM student_xinxi WHERE 身份证号='450122198812141655'";            //4.新建命令对象(工人),并且告诉他要走哪条路conn去做什么事情sqlstr            MySqlCommand cmd = new MySqlCommand( SqlCommad,conn);            //5.打开连接通道            conn.Open();            //6.调用方法执行数据库指令            try            {                 res = cmd.ExecuteNonQuery();//返回受影响的行数            }            catch(ArgumentNullException e)            {                Console.WriteLine(e.Message);            }            //7.关闭通道           conn.Close();           if (res > 0)           {               Console.WriteLine("新增成功,返回受影响的行数:" + res);           }           else           {               Console.WriteLine(" 新增失败");           }        }  #endregion #region 查询( 读取器方式)        /// <summary>        /// 读取器方式是指一行一行读取数据库数据        /// </summary>        static void SqlQuery()        {            //1.连接服务器            string sqlstr = @"server=127.0.0.1;database=testsql;UID=root;PWD=123456;";            MySqlConnection conn = new MySqlConnection(sqlstr);            //2.准备指令            string strcommad = @"select * from student_xinxi";            MySqlCommand cmd = new MySqlCommand(strcommad, conn);            //3.打开连接            conn.Open();            //4.读取器读取            MySqlDataReader res = cmd.ExecuteReader();            while (res.Read())//read 方法,如果读到下一行数据,则返回true,而且res本身就等于那一行数据            {                //两种读取数组方式注意下标               Console.WriteLine(res["student_ID"].ToString());               //Console.WriteLine(res[0].ToString());            }            res.Close();// 关闭读取器            conn.Close();        }#endregion#region 适配器读取方式        static void CmdQuery()        {            //1.连接数据库            string strserver = @"server=localhost;database=testsql;UID=root;PWD=123456;";            MySqlConnection conn = new MySqlConnection(strserver);            //2.配置指令            string strcmd = @"select * from student_xinxi";           // 创建适配器对象,告诉他要做什么事情,走哪条路去            MySqlDataAdapter da=new MySqlDataAdapter(strcmd,conn);            // 创建数据集对象(程序端的临时数据库)            DataSet ds = new DataSet();            //调用fill方法,填充数据集,(先去数据库查询结果集,并把结果集返回复制给数据集)            da.Fill(ds);            //da.Fill(ds, table1);table1为表的别名      DataTable dt = ds.Tables["table1"];            //获取数据集中的第一张表            DataTable dt = ds.Tables[0];            // 循环数据表中的每一行            for (int i = 0; i < dt.Rows.Count; i++)            {                DataRow dr = dt.Rows[i];//将循环到的行拿出来给dr对象                Console.WriteLine(dr["student_ID"]);            }                //3.打开通道                conn.Open();            //4.发送指令并以适配器方式读取                           }#endregion #region 调用存储过程        /// <summary>        /// create procedure usp(IN id INT)         //   begin        //    select student_ID from student_xinxi where phone = id;        //  end        /// </summary>        static void cunchu()        {            string str = @"server=localhost;database=testsql;UID=root;PWD=123456;";            MySqlConnection  conn=new MySqlConnection(str);            MySqlCommand cmd = new MySqlCommand("usp", conn);//            cmd.CommandType = CommandType.StoredProcedure;// 指定命令类型为存储过程           MySqlParameter sp = new MySqlParameter();//指定存储过程中的参数           sp.ParameterName = "id";           sp.MySqlDbType = MySqlDbType.Int32;           sp.Value=1353394;            cmd.Parameters.Add(sp);// 将参数对象加入到命令对象的参数集合中()            MySqlDataAdapter da = new MySqlDataAdapter(cmd);            DataTable dt = new DataTable();            da.Fill(dt);            foreach (DataRow dr in dt.Rows)            {                Console.WriteLine("输出结果:"+dr[0].ToString());            }                    } #endregion    }}