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. C语言---翻译过程

    c的实现中包括两种环境: 1.翻译环境(translation environment):源程序---->机器指令 2.执行环境(execution environment):执行机器指令 这两 ...

  2. 关于Eclipse中配置产品启动的插件

    比较省事的是白哥给我一个配置文件(EE_CONF_TEST.launch),使用的方法白哥推荐我新建一个普通的java项目,然后拷贝到这个项目中. 拷贝到项目中之后在Run Configuration ...

  3. matlab norm 范式

    格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 p  返回值  1  返回A中最大一列和,即max(sum(abs(A)))  2 返回A的 ...

  4. gcc的基础知识

    GCC(GNU Compiler Collection,GNU编译器集合)是一套由GNU工程开发的支持多种编程语言的编译器. 基本用法 在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件 ...

  5. Java8的新特性

        Java 8主要新特性包括如下几点: 一.接口的默认方法和静态方法 Java 8版之前,接口只有抽象方法,而在Java 8,为接口新增了两种类型的方法. 第一种是默认方法:在Java 8中,可 ...

  6. javascript中substring和substr方法

    1.substring 方法 定义:用于提取字符串中介于两个指定下标之间的字符 语法:stringObject.substring(start,stop) 参数描述: start 必需.一个非负的整数 ...

  7. 自己写http获取网络资源和解析json数据

    虽然github上有很多开源的,方便的jar报,用起来也很方便,但我们也需要了解其中的原理,如何自己不用第三方jar包来获取网络资源 主要代码如下:  因为联网是耗时的操作,所以需要另开一个线程来执行 ...

  8. Python(2.7.6) 标准日志模块 - Logging Handler

    Python 标准日志模块使用 Handler 控制日志消息写到不同的目的地,如文件.流.邮件.socket 等.除了StreamHandler. FileHandler 和 NullHandler ...

  9. Microsoft Visual Studio 2013 Update 1 离线安装程序

    ☆ 微软官网地址:☆http://www.microsoft.com/zh-cn/download/details.aspx?id=41650☆ 离线安装程序 直接下载链接:☆http://downl ...

  10. Checkbox 全选、反选

    1.全选.反选 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></t ...