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
C#访问MySQL数据库的方法的更多相关文章
- 在Eclipse中使用JDBC访问MySQL数据库的配置方法
在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- .NET连接MySql数据库的方法及示例
方法一: 使用MySQL推出的MySQL Connector/Net组件, 该组件是MySQL为ADO.NET访问MySQL数据库设计的.NET专用访问组件.完成该组件后,需要在项目中引用这个组件,也 ...
- C#连接、访问MySQL数据库
一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...
- 30多条mysql数据库优化方法【转】
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...
- 转载:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- MySQL入门很简单: 15 java访问MySQL数据库
1. 连接数据库 1.1 下载安装驱动 java通过JDBC(Java Database Connectivity,Java数据库连接)来访问MySQL数据库.JDBC的编程接口提供的接口和类与MyS ...
- 怎么设置才能让外网ip可以访问mysql数据库[转]
转自: http://www.hongyanliren.com/89.html 使用mysql中,很多人都会遇到这样的问题:在vps服务器或者云服务器上安装了mysql后,使用其他工具在外网ip之下根 ...
随机推荐
- [转] ES6 import/export:模块导入导出方式
export导出语法 // default exports export default 42; export default {}; export default []; export defaul ...
- AOJ 2170 Marked Ancestor[并查集][离线]
题意: 给你一颗N个节点的树,节点编号1到N.1总是节点的根.现在有两种操作: M v: 标记节点v Q v: 求出离v最近的标记的相邻节点.根节点一开始就标记好了. 现在给一系列操作,求出所有Q操作 ...
- python学习之基本数据类型
python的基本数据类型有数字.字符串.列表.字典.元祖.布尔值 一.数字 1.1.字符转换为数字 实例: a=" b=int(a) print(b+) 运行结果: 可以用type查看数据 ...
- Flask 环境搭建
引用自:https://www.cnblogs.com/rongtangzi/p/6623122.html #!/bin/env python # _*_coding:utf-8_*_ #!!!!!! ...
- C++和java的区别和联系
今晚,数院的一个兄弟借我Java课本,顺便问了一句“Java和C++到底有啥区别啊”.一下子有点问蒙了,“啊额.....运行平台不同....” "一个在高层,一个在底层...." ...
- poj 1703 - Find them, Catch them【带权并查集】
<题目链接> 题目大意: 已知所有元素要么属于第一个集合,要么属于第二个集合,给出两种操作.第一种是D a b,表示a,b两个元素不在一个集合里面.第二种操作是A a b,表示询问a,b两 ...
- 数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)
数据库增删改查 增加 首先我们创建一个数据库user,然后创建一张表employee create table employee( id int primary key auto_increment, ...
- 对扫描的pdf文件生成目录
很多pdf文件是直接扫描生成的,于是它的内容都是一张张的图片,当然就更没有目录索引了. 有的时候想找某些内容,只能一点点的移动滚动条,非常不方便. 那么有什么方法能生成目录呢? 方法一:使用福昕pdf ...
- Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1)
Xamarin Android组件篇教程RecylerView动画组件RecylerViewAnimators(1) RecyclerView是比ListView和GridView更为强大的布局视图, ...
- 探秘Tomcat(一)
前言:有的时候自己不知道自己是井底之蛙,这并没有什么可怕的,因为你只要蜷缩在方寸之间的井里,无数次的生活轨迹无非最终归结还是一个圆形:但是可怕的是有一天你不得不从井里跳出来生活,需要重新审视井以外的生 ...