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

  1. /// <summary>
  2. /// MySQL数据库
  3. /// 版本 mysql-connector-net-6.3.8.msi
  4. /// vp:hsg
  5. /// create date:2012-02-28
  6. /// </summary>
  7. [Serializable]
  8. public class DbConnectionMySQL : DbConnectionWrapper
  9. {
  10. public DbConnectionMySQL(string pConnectionString)
  11. : base(pConnectionString)
  12. {
  13. this.m_dbconn = new MySqlConnection(pConnectionString);
  14. this.m_DbConnState = DbConnState.Free;
  15. }
  16. //--
  17. public override DbDataAdapter GetDbDataAdapter()
  18. {
  19. return new MySqlDataAdapter();
  20. }
  21. public override DbDataAdapter GetDbDataAdapter(DbCommand dbCommand)
  22. {
  23. return new MySqlDataAdapter(dbCommand as MySqlCommand);
  24. }
  25. public override DbCommand GetDbCommand()
  26. {
  27. return new MySqlCommand();
  28. }
  29. public override DbConnection GetDbConnection()
  30. {
  31. return new MySqlConnection();
  32. }
  33. public override DbCommandBuilder GetDbCommandBuilder()
  34. {
  35. return new MySqlCommandBuilder();
  36. }
  37. public override DataProviderType GetCurrentDataProviderType()
  38. {
  39. return DataProviderType.Sql;
  40. }
  41. public override bool IsExistsTable(string TableName, string UserName)
  42. {
  43. #region information
  44. bool rbc = false;    //TABLES表中去查询 table_name
  45. string dSql = "select * from TABLES where table_name='" + TableName + "'";
  46. DataSet ds = this.ExecuteDataSet(dSql);
  47. if (ds != null)
  48. {
  49. if (ds.Tables[0].Rows.Count > 0)
  50. {
  51. rbc = true;
  52. }
  53. else
  54. {
  55. rbc = false;
  56. }
  57. }
  58. else
  59. {
  60. rbc = false;
  61. }
  62. return rbc;
  63. #endregion
  64. }
  65. public override bool IsExistsField(string FieldName, string TableName)
  66. {
  67. #region information
  68. bool rbc = false;
  69. string dSql = "";
  70. dSql = "select * from " + TableName + " where 1<>1";
  71. DataSet ds = this.ExecuteDataSet(dSql);
  72. if (ds != null)
  73. {
  74. DataTable dt = ds.Tables[0];
  75. for (int j = 0; j < dt.Columns.Count; j++)
  76. {
  77. if (dt.Columns[j].ColumnName.ToString().ToUpper() == FieldName.ToString().ToUpper())
  78. {
  79. rbc = true;
  80. goto Return_End;
  81. }
  82. }
  83. dt.Dispose();
  84. dt = null;
  85. }
  86. ds.Dispose();
  87. ds = null;
  88. Return_End:
  89. return rbc;
  90. #endregion
  91. }
  92. public override char ParameterChar
  93. {
  94. get
  95. {
  96. return ':';   //SQLite的参数符号为:
  97. }
  98. }
  99. public override DbParameter CreateParameter(string name, object value)
  100. {
  101. return new MySqlParameter(name, value);
  102. }
  103. public override DbParameter CreateParameter(string name)
  104. {
  105. DbParameter dbp = new MySqlParameter();
  106. dbp.ParameterName = name;
  107. return dbp;
  108. }
  109. public override DbParameter CreateParameter(string name, DbType dbtype, object value)
  110. {
  111. DbParameter dbp = new MySqlParameter();
  112. dbp.ParameterName = name;
  113. dbp.Value = value;
  114. dbp.DbType = dbtype;
  115. return dbp;
  116. }
  117. public override DbParameter CreateParameter(string name, DbType dbtype, int size, object value)
  118. {
  119. DbParameter dbp = new MySqlParameter();
  120. dbp.ParameterName = name;
  121. dbp.Value = value;
  122. dbp.DbType = dbtype;
  123. dbp.Size = size;
  124. return dbp;
  125. }
  126. }

(4)客户端访问测试开发实例

    1. public void TestCShape_MySQL()
    2. {
    3. string constr = "server=localhost;User Id=root;password=root;Database=xp_users";
    4. DbConnectionWrapper dbw = new DbConnectionMySQL(constr);
    5. bool rbc=dbw.TestConnection();
    6. this.Context.Response.Write(rbc);
    7. string x = "";
    8. //删除语句
    9. x = "delete from xp_users";
    10. if (dbw.ExecuteQuery(x) > 0)
    11. {
    12. this.Context.Response.Write("删除语句成功!下面是SQL语句<br>" + x);
    13. }
    14. //插入语句
    15. x = "insert into xp_users(gid,uid,uname,sex,email,pwd) values('";
    16. x += "1','hsg77','何XXX',1,'hsg77@163.com','1')";
    17. if (dbw.ExecuteQuery(x) > 0)
    18. {
    19. this.Context.Response.Write("插入语句成功!下面是SQL语句<br>"+x);
    20. }
    21. //查询语句
    22. DataTable dt = dbw.ExecuteDataTable("select * from xp_users");
    23. if (dt != null && dt.Rows.Count > 0)
    24. {
    25. this.Context.Response.Write("<br>用户数:"+dt.Rows.Count);
    26. }
    27. if (dt != null)
    28. {
    29. dt.Dispose();
    30. dt = null;
    31. }
    32. dbw.Dispose();
    33. dbw = null;

C#.NET连接mysql方法的更多相关文章

  1. JDBC连接MySQL 方法 实例及资料收集

    JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...

  2. sparksql连接mysql

    1.方法1:分别将两张表中的数据加载为DataFrame /* * 方法1:分别将两张表中的数据加载为DataFrame * */ /* Map<String,String> option ...

  3. C# 3种方法连接MySql

    转   http://wenku.baidu.com/view/d0cf34708e9951e79b8927c7.html C# 连接MYSQL数据库的方法及示例 连接MYSQL数据库的方法及示例 方 ...

  4. 连接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 ...

  5. Navicat for MySQL连接MYSQL出错,错误代码1045的解决方法

    Navicat for MySQL连接MYSQL

  6. [转]配置mysql允许远程连接的方法

    配置mysql允许远程连接的方法 vim /etc/my.cnf注释这一行:bind-address=127.0.0.1 ==> #bind-address=127.0.0.1保存退出.mysq ...

  7. Linux系统下 解决Qt5无法连接MySQL数据库的方法

    Linux平台下解决Qt5连接mysql数据库的问题:输入sudo apt-get install libqt5sql5-mysql解决,这种方法只能解决Qt是用sudo apt-get instal ...

  8. VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

    VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machin ...

  9. MySQL数据库远程连接开启方法

    有时候需要远程连接mysql数据库,默认是不可以的,可以参考下面的方法,解决下. 1.登陆自己机器的MySQL数据库:mysql -uroot -p密码 设置root用户可以任意IP访问,代码如下(可 ...

随机推荐

  1. oracle数据库创建用户,并且给用户授权

    参考文档: http://www.blogjava.net/wolfman09/archive/2009/05/01/268536.html 一:创建用户 create user username i ...

  2. 图像处理函数详解——im2bw

    im2bw是基于转换为二值图像的算法,用的是otsu's method. matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成 ...

  3. RavenScheme简介

    RavenScheme简介 RavenScheme使用了一个运行『读入-求值-打印』循环的解释器.该解释器从标准输入反复的读入表达式,对得到的表达式求值,然后打印出结果. 如果用户键入: [加 1 2 ...

  4. 给你看看我练习的oracle语句

    -------预算-- CREATE OR REPLACE VIEW V_YUSUAN_BGY_WZ20151204 AS SELECT tb_cube_fc05.pk_entity pk_org,/ ...

  5. Azure Redis Cache作为ASP.NET 缓存输出提供程序

    前一篇文章<Azure Redis Cache作为ASP.NET Session状态提供程序 >我们已经知道如何将ASP.NET应用程序Session存储在Redis Cache中,这里我 ...

  6. client 如何找到正确的RegionServer(HBase -ROOT-和.META.表)

    在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer.什么叫相应的RegionServer?就是管理你要操 ...

  7. 对象创建型模式------Abstract Factory(抽象工厂)

    1. 意图    提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.2. 别名    Kit3. 动机        假设我们要开发一款游戏,当然为了吸引更多的人玩,游戏难度不能太大 ...

  8. vim 高级使用技巧第二篇

    上篇我贴上了我使用的vim配置及插件配置,有这些东西只能是一个脚本堆积,无从谈高效的代码阅读开发. 下面我们就来写经常使用的命令,就从配置F系列快捷键开始吧. F+ n 快捷键配置 F1基本上时帮助, ...

  9. WIN8+VS2013编写发布WCF之一(编写)

      引言:上学期因为写服务器用WCF,所以连查资料再瞎调试勉强成功了,但是这学期又到了用WCF的时候,而当时的资料零零散散,查找不易,并且此次是在WIN8与VS2013环境下编写的,所以将该入门过程记 ...

  10. 第十八篇、keychain保存UUID(保持唯一性,应用卸载,下载安装也不变)和获取IP地址

    .h #import <Foundation/Foundation.h> #import <Security/Security.h> /**使用**/ //-(void) se ...