您的位置:首页 > 数据库 > MySQL

C#访问MySQL数据库的方法

2015-05-02 12:11 302 查看
原文地址:
http://blog.csdn.net/hsg77/article/details/7302880
C#访问MySQL数据库的方法

(1)首先需要下载C#访问MySQL数据库的ADO.NET驱动程序

下载地址为:
http://dev.mysql.com/downloads/connector/net/6.0.html
我下载的版本为: mysql-connector-net-6.3.8.msi

下载地址如下url:

http://dev.mysql.com/downloads/mirror.php?id=405442

(2)安装mysql-connector-net

然后直接在Windows操作系统安装 mysql-connector-net-6.3.8.msi

默认是安装在C盘:

C:\Program Files\MySQL\MySQL Connector Net 6.3.8\Assemblies

v2.0

v4.0

安装完后我选择的是v2.0版本的

然后在应用工程中引用组件MySQL.Data.dll

(3)封装数据库访问组件DbConnectionMySQL

[csharp] view
plaincopy

/// <summary>  

    /// MySQL数据库   

    /// 版本 mysql-connector-net-6.3.8.msi  

    /// vp:hsg  

    /// create date:2012-02-28  

    /// </summary>  

    [Serializable]  

    public class DbConnectionMySQL : DbConnectionWrapper  

    {  

        public DbConnectionMySQL(string pConnectionString)  

            : base(pConnectionString)  

        {  

              

            this.m_dbconn = new MySqlConnection(pConnectionString);  

            this.m_DbConnState = DbConnState.Free;  

        }  

  

        //--  

        public override DbDataAdapter GetDbDataAdapter()  

        {  

            return new MySqlDataAdapter();  

        }  

        public override DbDataAdapter GetDbDataAdapter(DbCommand dbCommand)  

        {  

            return new MySqlDataAdapter(dbCommand as MySqlCommand);  

        }  

        public override DbCommand GetDbCommand()  

        {  

            return new MySqlCommand();  

        }  

        public override DbConnection GetDbConnection()  

        {  

            return ne
1f494
w MySqlConnection();  

        }  

        public override DbCommandBuilder GetDbCommandBuilder()  

        {  

            return new MySqlCommandBuilder();  

        }  

  

        public override DataProviderType GetCurrentDataProviderType()  

        {  

            return DataProviderType.Sql;  

        }  

  

        public override bool IsExistsTable(string TableName, string UserName)  

        {  

            #region information  

            bool rbc = false;    //TABLES表中去查询 table_name  

            string dSql = "select * from TABLES where table_name='" + TableName + "'";  

            DataSet ds = this.ExecuteDataSet(dSql);  

            if (ds != null)  

            {  

                if (ds.Tables[0].Rows.Count > 0)  

                {  

                    rbc = true;  

                }  

                else  

                {  

                    rbc = false;  

                }  

            }  

            else  

            {  

                rbc = false;  

            }  

            return rbc;  

            #endregion  

        }  

        public override bool IsExistsField(string FieldName, string TableName)  

        {  

            #region information  

            bool rbc = false;  

            string dSql = "";  

            dSql = "select * from " + TableName + " where 1<>1";  

            DataSet ds = this.ExecuteDataSet(dSql);  

            if (ds != null)  

            {  

                DataTable dt = ds.Tables[0];  

                for (int j = 0; j < dt.Columns.Count; j++)  

                {  

                    if (dt.Columns[j].ColumnName.ToString().ToUpper() == FieldName.ToString().ToUpper())  

                    {  

                        rbc = true;  

                        goto Return_End;  

                    }  

                }  

                dt.Dispose();  

                dt = null;  

            }  

            ds.Dispose();  

            ds = null;  

  

        Return_End:  

  

            return rbc;  

            #endregion  

        }  

  

        public override char ParameterChar  

        {  

            get  

            {  

                return ':';   //SQLite的参数符号为:  

            }  

        }  

  

        public override DbParameter CreateParameter(string name, object value)  

        {  

            return new MySqlParameter(name, value);  

        }  

  

        public override DbParameter CreateParameter(string name)  

        {  

            DbParameter dbp = new MySqlParameter();  

            dbp.ParameterName = name;  

            return dbp;  

        }  

        public override DbParameter CreateParameter(string name, DbType dbtype, object value)  

        {  

            DbParameter dbp = new MySqlParameter();  

            dbp.ParameterName = name;  

            dbp.Value = value;  

            dbp.DbType = dbtype;  

            return dbp;  

        }  

        public override DbParameter CreateParameter(string name, DbType dbtype, int size, object value)  

        {  

            DbParameter dbp = new MySqlParameter();  

            dbp.ParameterName = name;  

            dbp.Value = value;  

            dbp.DbType = dbtype;  

            dbp.Size = size;  

            return dbp;  

        }  

    }  

(4)客户端访问测试开发实例

[csharp] view
plaincopy

public void TestCShape_MySQL()  

        {  

            string constr = "server=localhost;User Id=root;password=root;Database=xp_users";  

            DbConnectionWrapper dbw = new DbConnectionMySQL(constr);  

            bool rbc=dbw.TestConnection();  

            this.Context.Response.Write(rbc);  

                         

  

            string x = "";  

            //删除语句  

            x = "delete from xp_users";  

            if (dbw.ExecuteQuery(x) > 0)  

            {  

                this.Context.Response.Write("删除语句成功!下面是SQL语句<br>" + x);  

            }  

            //插入语句  

            x = "insert into xp_users(gid,uid,uname,sex,email,pwd) values('";  

            x += "1','hsg77','何XXX',1,'hsg77@163.com','1')";  

            if (dbw.ExecuteQuery(x) > 0)  

            {  

                this.Context.Response.Write("插入语句成功!下面是SQL语句<br>"+x);  

            }  

            //查询语句  

            DataTable dt = dbw.ExecuteDataTable("select * from xp_users");  

            if (dt != null && dt.Rows.Count > 0)  

            {  

                this.Context.Response.Write("<br>用户数:"+dt.Rows.Count);  

            }  

            if (dt != null)  

            {  

                dt.Dispose();  

                dt = null;  

            }  

            dbw.Dispose();  

            dbw = null;  

        }  

----the---end---
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# mysql