C#操作Mysql混合开发

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

/// <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 new 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;  
        }  

——————欧克了!

### 回答1: C 是一种通用的、面向过程的编程语言,它被广泛应用于计算机系统的底层开发。C 语言有很多优点,例如编译速度快、代码结构清晰、功能强大,因此被广泛用于系统编程、嵌入式系统开发、科学计算等领域。C 语言有一些缺点,例如代码难以维护、缺乏面向对象编程的功能,因此不太适合大型软件开发。 ### 回答2: 对于C,它是一种被广泛应用的编程语言。C语言由Dennis Ritchie于1972年在贝尔实验室开发,主要用于系统软件和应用程序的开发。C语言的设计目标是提供一种简单而高效的编程语言,以支持底层的硬件操作和高性能的运算。 C语言具有许多特点和优势。首先,C语言的语法相对简单,并且易于理解和学习。它提供了一系列的基本语句和数据类型,可以方便地进行程序设计和编写。其次,C语言具有高效的执行速度和低的内存占用。C语言允许直接访问内存,并提供了丰富的指针操作,这使得程序可以更好地利用计算机的资源,提高程序的性能。此外,C语言还能够与汇编语言进行混合编程,使得程序员能够更加灵活地控制程序的执行。 C语言在各个领域都有广泛的应用。它被用于编写操作系统、嵌入式系统、网络协议、数据库系统以及各种应用程序等。C语言的应用非常广泛,几乎可以在任何计算机系统上运行。目前许多计算机科学和软件工程学院的课程都会教授C语言的基础知识,因为它为学生提供了一个良好的编程基础,能够帮助他们更好地理解计算机系统和开发软件。 总而言之,C语言是一种简单高效的编程语言,具有广泛的应用和优势。它为开发者提供了丰富的编程工具和控制能力,使得他们能够更好地控制和利用计算机系统。无论是初学者还是专业开发人员,都可以通过学习和应用C语言来实现各种计算和程序开发任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值