C#.NET连接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;
C#.NET连接mysql方法的更多相关文章
- JDBC连接MySQL 方法 实例及资料收集
JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...
- sparksql连接mysql
1.方法1:分别将两张表中的数据加载为DataFrame /* * 方法1:分别将两张表中的数据加载为DataFrame * */ /* Map<String,String> option ...
- C# 3种方法连接MySql
转 http://wenku.baidu.com/view/d0cf34708e9951e79b8927c7.html C# 连接MYSQL数据库的方法及示例 连接MYSQL数据库的方法及示例 方 ...
- 连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
mysql,mysqldump,Mysqladmin,php连接mysql服务常会提示下面错误: ERROR 2002 (HY000): Can't connect to local MySQL se ...
- Navicat for MySQL连接MYSQL出错,错误代码1045的解决方法
Navicat for MySQL连接MYSQL
- [转]配置mysql允许远程连接的方法
配置mysql允许远程连接的方法 vim /etc/my.cnf注释这一行:bind-address=127.0.0.1 ==> #bind-address=127.0.0.1保存退出.mysq ...
- Linux系统下 解决Qt5无法连接MySQL数据库的方法
Linux平台下解决Qt5连接mysql数据库的问题:输入sudo apt-get install libqt5sql5-mysql解决,这种方法只能解决Qt是用sudo apt-get instal ...
- VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法
VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machin ...
- MySQL数据库远程连接开启方法
有时候需要远程连接mysql数据库,默认是不可以的,可以参考下面的方法,解决下. 1.登陆自己机器的MySQL数据库:mysql -uroot -p密码 设置root用户可以任意IP访问,代码如下(可 ...
随机推荐
- ElasticSearch Search API 简介
REST request URI curl 'localhost:9200/bank/_search?q=*&pretty' 1. localhost:9200/bank/_search,以 ...
- 实现百度地图导航Demo的语音播报功能
上文中实现了在本地导入百度地图导航Demo,那么在此基础上如何实现导航的语音播报呢? 一.为该应用申请语音播报(也叫注册) http://developer.baidu.com/map/index.p ...
- 【转】Emmagee app性能测试工具使用教程
简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控 ...
- Smarty中一些标签的使用
Smarty中的标签和php中的标签不一样 foreach标签{foreach from=$goods(变量名) key='键,不带$' item='值,不带$'}中间的显示内容{/foreach ...
- asp:弹出警告框,并重定向的自定义过程
因为制作的需要写了这样一个简单的函数,重定向可以是指定的页.也可以是前一页! 有两个参数:messtr,警告框的信息;urlstr:转向的网页,为""时,返回到前一页! 程序代码 ...
- ASP.NET伪静态-无法读取配置文件,因为它超过了最大文件大小的解决办法
一直都在使用微软URLRewriter,具体的使用方法我就不多说了,网上文章很多. 但最近遇到一个问题,就是当web.config文件里面设置伪静态规则过多,大于2M的时候,就报错:无法读取配置文件, ...
- this 函数内部属性
前言:在javascript中我们会经常碰到this,然后this经常出现在function方法里面,有时候可能因为代码很多,无法判断this指向的是谁,其实很简单,一句话总结:谁点出这个this,这 ...
- kettle Row Normaliser(行转列)
表1 设置 表2
- c#转义字符串中的所有正则特殊字符
/// <summary> /// 转义字符串中所有正则特殊字符 /// </summary> /// <param name="input"> ...
- Appium Python Driver Api