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)客户端访问测试开发实例

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---

create date:2012-02-28

转载于:https://www.cnblogs.com/sqlite3/archive/2012/02/28/2566742.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值