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访问,代码如下(可 ...
随机推荐
- 读写锁ReadWriteLock和缓存实例
读写锁:多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥.即:读的时候不允许写,写的时候不允许读,可以同时读. synchronized关键字和普通的Lock构造的锁,会造成读与读之间的互斥, ...
- Python 基础【第九篇】运算
Python的运算符比较通俗和其他语言的几乎没什么区别 一.算数运算符 " + " 加法运算 >>> 1+3 4 加法运算扩展 "增强赋值操作" ...
- android小结
一. 对与java读写文件的操作: 字节流: //filename 可以是文件名,可以是文件路径 FileOutputStream outputStream=new FileOutputStream ...
- linux 中的vim的配置文件的位置
/etc下面也有一个vimrc:这个文件对所有用户都有效 在用户家目录(/home/用户名:或/root/)下面有一个.viminfo,只针对特定的用户有效
- 浅谈用java解析xml文档(三)
接上一篇,本文介绍使用JDOM解析xml文档, 首先我们还是应该知道JDOM从何而来,是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果,2000年初, JDOM作 ...
- EasyUIDataGrid 的List<T>转Json
EasyUI的DataGrid的Json自己拼接的话非常麻烦,而且容易出错,于是写了个通用的方法! CustomList<T>自定义类,继承于List<T>,用来处理返回的实体 ...
- [转]如何学好windows c++编程 学习精髓(收集,整理)
以下是很多VC爱好者的学习经历,希望对大家有所帮助: 我记得我在网上是这么说的:先学win32的SDK,也就是API, 再学MFC,这么一来呢,就先有个基础,MFC是API的封装, 如果API用的熟了 ...
- 07_XPath_02_常用语法
[工程截图] [person.xml] <?xml version="1.0" encoding="UTF-8"?> <students> ...
- [可拖动DIV]刚开通博客顺便就写了点东西!
说说我自己的思路 首先需要一个初始div div { border: 1px #333 solid; width: 200px; height: 50px; } <div id="od ...
- 挑战EXT——QUI框架介绍与下载
挑战EXT——QUI框架介绍与下载 为庆祝新版QUI问世特写此文: 提起EXTJS的大名,恐怕WEB开发界无人不晓吧.EXTJS框架发展到现在,已经非常成熟和全面了.它的组件库尤其是DataGrid组 ...