C#连接mysql数据库

来源:互联网 发布:android多屏互动源码 编辑:程序博客网 时间:2024/06/05 09:20

1.下载安装

 http://sourceforge.net/projects/mysqldrivercs/下载MySQlDriverCS 并安装.

或者到本人的网盘下载:      http://pan.baidu.com/s/1pJqTXRP



2.添加引用 单击右键添加引用

在安装目录下找到mysqlDrivercs.dll


在解决方案中找到引用,右键单击添加引用.

 

 

 

下面是操作数据库的代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.Odbc;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using MySQLDriverCS;

 

namespace mysql1

{

    public partial class Form1 : Form

    {

        publicForm1()

        {

            InitializeComponent();

        }

        privatevoid Form1_Load(objectsender,EventArgs e)

        {

            MySQLConnectionconn =null;

            conn = newMySQLConnection(newMySQLConnectionString("localhost","test","root","123456").AsString);

            conn.Open();

            //MySQLCommandcommn = new MySQLCommand("set names gb2312", conn);

            //commn.ExecuteNonQuery();

            stringsql = "select * from gw_test ";

             MySQLDataAdaptermda =new MySQLDataAdapter(sql,conn);

             DataSetds = new DataSet();

             mda.Fill(ds, "table1");

            this.dataGrid1.DataSource= ds.Tables["table1"];

            conn.Close();

        }

    }

}


下面简绍的本人写好的操作mysql的类.里面对数据库的连接, 数据的增删改查做了封装.

using System;using System.Collections.Generic;using System.Linq;using System.Text;using MySQLDriverCS;using System.ComponentModel;using System.Data;using System.Windows.Forms;using System.Collections;/** * 下面的DbServer类对 C#操作mysql数据库做了一个简化   封装了 操作数据库最常用的增删改查操作    微信订阅号 next_space  关注会有更多的资源 */namespace shiyan4{    class DbServer    {        private string dbname;        private string dbhost;        private string dbuser;        private string dbpwd;        private string dbtype="mysql";        MySQLConnection conn = null;        MySQLCommand command;        private bool isConnect;        public DbServer()        {                  }        //创建数据库驱动类  dbhost 主机地址 dbname 数据库名  dbuser 用户名  dbpwd密码        public DbServer(string dbhost, string dbname, string dbuser, string dbpwd)        {            this.dbhost = dbhost; this.dbname = dbname;            this.dbpwd = dbpwd;   this.dbuser = dbuser;            this.isConnect = false;        }        ~DbServer()        {            conn.Close();                }        //连接数据库        public bool connect()        {            conn = new MySQLConnection(new MySQLConnectionString(dbhost, dbname,dbuser, dbpwd).AsString);            try            { conn.Open();}            catch (Exception ex)            {                MessageBox.Show("数据库连接失败");//MessageBox.Show(ex.Message);                return false;            }                       return true;        }        //从数据库中读取记录  sql 要执行的语句        public DataTable getDataTable(string tableName, string con, string fields = "")        {            if (fields == "")                fields = "*";            string sql = string.Format("select {0} from  {1} where {2};", fields, tableName, con);            MySQLDataAdapter mda = new MySQLDataAdapter(sql, conn);           // DataSet ds = new DataSet(); mda.Fill(ds, "table1");            DataTable dt = new DataTable();            mda.Fill(dt);                       return dt;        }        //删除数据 table 表名 condition 条件        public bool delDate(string table,string condition)        {            string str = string.Format("delete from {0} where {1}", table, condition);            int res = exceSql(str);            //MessageBox.Show(res + "");            if (res == -1)                return false;            return true;        }        //添加数据 table表名  r 要添加的数据          public bool addData(string tableName,Row r)        {            ArrayList list=r.getList();            IEnumerator enumerator = list.GetEnumerator();            StringBuilder fields = new StringBuilder("(");            StringBuilder data = new StringBuilder("(");            while (enumerator.MoveNext())            {               RowItem it=(RowItem) enumerator.Current;               string filedname = it.getFieldName();               string value = it.getValue();               //fields += "'" + filedname + "'" + ",";               fields.AppendFormat("`{0}`,", filedname);               data.AppendFormat("'{0}',", value);            }            fields.Replace(',', ')', fields.Length - 1,1);            data.Replace(',', ')', data.Length - 1, 1);            //MessageBox.Show(fields.ToString()+" "+data.ToString());            string sqlstr = string.Format("INSERT INTO {0} {1}  VALUES{2}", tableName,fields.ToString(), data.ToString());            int res = exceSql(sqlstr);            if (res == -1)                return false;            return true;        }        //根据条件查找数据  table 表名  con 条件 fields 待查询的字段        public ArrayList findData(string tableName,string con,string fields="")        {            if (fields == "")                fields = "*";                       string sql = string.Format("select {0} from  {1} where {2};",fields, tableName, con);           //  MessageBox.Show(sql);            MySQLCommand cmd = new MySQLCommand(sql, conn);            command = new MySQLCommand("", conn);            command.CommandText = sql;            MySQLDataReader reader = command.ExecuteReaderEx();            string str = "0";            int length = 0;            int fieldNum = reader.FieldCount;            ArrayList rows = new ArrayList();            while (reader.Read())            {                ArrayList row = new ArrayList();                for (int i = 0; i < fieldNum;i++ )                {                    row.Add(reader.GetString(i));                }                rows.Add(row);                              length++;            }            reader.Close();            cmd.Dispose();            return rows;        }        //更新数据  table 表名  r 新的数据  con 条件        public bool updateData(string tableName,Row r,string con)        {            ArrayList list = r.getList();            IEnumerator enumerator = list.GetEnumerator();            StringBuilder fields = new StringBuilder();                            while (enumerator.MoveNext())            {                RowItem it = (RowItem)enumerator.Current;                string filedname = it.getFieldName();                string value = it.getValue();                fields.AppendFormat("{0}='{1}',", filedname,value);            }            fields.Replace(',', ' ', fields.Length - 1, 1);            string sql = string.Format("update {0} set {1} where {2};", tableName,fields.ToString(),con);           // MessageBox.Show(sql);            int res = exceSql(sql);            if (res == -1)                return false;            return true;        }        //直接执行sql命令 返回受影响的行数        public int exceSql(string sql)        {            command = new MySQLCommand("", conn);            command.CommandText = sql;            int res;            try            {                 res = command.ExecuteNonQuery();                //返回结果为受影响行数               // MessageBox.Show(res + "");            }            catch (System.Exception ex)            {                MessageBox.Show("执行命令失败:" + ex.Message);                return -1;            }            finally            {                command.Dispose();            }            return res;        }        //创建表    }    //单个字段    class RowItem    {        string fieldName;        string value;        public RowItem(string fieldName, string value)        {            this.fieldName = fieldName;            this.value = value;        }        public string getFieldName()        {            return fieldName;        }        public string getValue()        {            return value;        }    }    //一行数据    class Row    {        ArrayList list;        public Row()        {            list = new ArrayList();        }        //添加一个 键值对        public void addRowItem(string fieldName,string value)        {            RowItem it = new RowItem(fieldName, value);            list.Add(it);        }        public ArrayList getList()        {            return list;        }    }}/**  db = new DbServer("localhost", "test", "root", "123456");            db.connect();                   string sql = "select * from gw_test ";            DataTable dt = db.getDataTable(sql);            this.dataGrid1.DataSource = dt;            Row r = new Row();            r.addRowItem(new RowItem("gw1", "tes1t"));            r.addRowItem(new RowItem("gw2", "1111"));            //if (db.addData("gw_test", r))            {            //    MessageBox.Show("添加成功");            }            Row newdata=new Row();            newdata.addRowItem(new RowItem("gw2","55555555"));            if (db.updateData("gw_test", newdata, "gw2='222'"))            {                MessageBox.Show("更新成功");            };            if(db.delDate("gw_test","gw1= 'tes1t'"))            {                MessageBox.Show("删除成功");            } */

测试类:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using MySQLDriverCS;using System.Collections;//DbSercer示例程序namespace shiyan4{    public partial class Form1 : Form    {        DbServer db;        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            db = new DbServer("localhost", "test", "root", "123456");            db.connect();            DataTable dt=db.getDataTable("student", "1=1");            this.dataGrid1.DataSource = dt;        }        private void btn_add_Click(object sender, EventArgs e)        {            Row r = new Row();            r.addRowItem("sno", "122055905");            r.addRowItem("name", "1111");            r.addRowItem("cid", "1220551");            r.addRowItem("enteryear", "2014");                       if (db.addData("student", r))            {                MessageBox.Show("添加成功");            }                    }        private void btn_del_Click(object sender, EventArgs e)        {            if (db.delDate("student", "1=1"))            {                MessageBox.Show("删除成功");            }        }        private void btn_find_Click(object sender, EventArgs e)        {            ArrayList datas=db.findData("student", "1=1");            string result = "";            foreach (ArrayList o in datas)            {                foreach (string oo in o)                {                    result += oo+" ";                }                result += "\n";            }            MessageBox.Show(result);        }        //        private void btn_update_Click(object sender, EventArgs e)        {            Row newdata = new Row();            newdata.addRowItem("name", "gw");            if (db.updateData("student", newdata, "sno='122055905'"))            {                MessageBox.Show("更新成功");            };        }        private void textBox1_TextChanged(object sender, EventArgs e)        {        }        private void label1_Click(object sender, EventArgs e)        {        }        private void add_Click(object sender, EventArgs e)        {            string id = this.tb_no.Text;            string name = this.tb_name.Text;            string cid = this.tb_cid.Text;            MessageBox.Show(id + name + cid);;           Row r = new Row();            r.addRowItem("sno", id);            r.addRowItem("name", name);            r.addRowItem("cid", cid);            r.addRowItem("enteryear", "2014");            if (db.addData("student", r))            {                MessageBox.Show("添加成功");            }            DataTable dt = db.getDataTable("student", "1=1");            this.dataGrid1.DataSource = dt;        }      }}/**  db = new DbServer("localhost", "test", "root", "123456");            db.connect();                   string sql = "select * from gw_test ";            DataTable dt = db.getDataTable(sql);            this.dataGrid1.DataSource = dt;            Row r = new Row();            r.addRowItem(new RowItem("gw1", "tes1t"));            r.addRowItem(new RowItem("gw2", "1111"));            //if (db.addData("gw_test", r))            {            //    MessageBox.Show("添加成功");            }            Row newdata=new Row();            newdata.addRowItem(new RowItem("gw2","55555555"));            if (db.updateData("gw_test", newdata, "gw2='222'"))            {                MessageBox.Show("更新成功");            };            if(db.delDate("gw_test","gw1= 'tes1t'"))            {                MessageBox.Show("删除成功");            } */

实验截图:


 

 

0 0
原创粉丝点击