C#.NET连接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

[csharp] view plain copy

  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)客户端访问测试开发实例

[csharp] view plain copy

    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,‘[email protected]‘,‘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;
时间: 2024-08-24 20:06:01

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

jdbc连接Mysql方法封装

package com.shopping.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DB { static { try { Class.forNam

C#中连接MySql方法

MySQL 连接字符串.. >>ODBC 1.Local database: "Driver={mySQL};Server=mySrvName;Option=16834;Database=mydatabase;" 2.Remote database: "Driver={mySQL};Server=data.domain.com;Port=3306;Option=131072;Stmt=;Database=my-database;Uid=username;Pwd=p

远程连接mysql 授权方法详解

今在服务器上有mysql数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库,接下来为您详细介绍 今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器上运行: 1: 创建user用户 复制代码 代码如下: CREATE USER demo IDENTIFIED BY

MySQL开启远程连接的方法

原文地址 http://www.cnblogs.com/linjiqin/p/5270938.html 配置mysql允许远程连接的方法 默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件. 一.修改/etc/mysql/my.conf找到bind-address = 127.0.0.1这一行改为bind-address = 0.0.0.0即可 二.为需要远程登录的用户赋予权限1.新建用户远程连接mysql数据库grant all on

连接Mysql提示Can’t connect to local MySQL server through socket的解决方法

mysql,Mysqldump,Mysqladmin,php连接mysql服务常会提示下面错误: 1 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 这是由于修改mysql服务的了socket文件mysql.sock位置,而导致无法通过mysql socket文件连接到mysql服务引起的,具体解决办法如下:1.查看mysql服务的sock

QTP连接MYSQL数据库方法

1.首先安装mysql数据驱动,qtp在windows系统下操作连接mysql,所以下载mysql-connector-odbc-   5.1.8-win32.msi 下载地址:http://mysql.mirrors.pair.com/Downloads/Connector-ODBC/5.1/mysqlconnector-odbc-5.1.8-win32.msi 2.安装mysql驱动 ,默认安装即可. 3. 添加默认数据源 控制面板->管理工具->数据源ODBC->系统DNS->

两种方法连接MySql数据库

1.用MySQLDriverCS连接MySQL数据库 先下载和安装MySQLDriverCS,在安装文件夹下面找到MySQLDriver.dll,然后将MySQLDriver.dll添加引用到项目中. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Odbc; using System.Drawing; using S

C++连接mysql数据库的两种方法

现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多.通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法.可以通过2种方法实现. 第一种方法是利用ADO连接, 第二种方法是利用mysql自己的api函数进行连接. 第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的

Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句&#39;&#39; &quot;&quot;作用

//方法一,可以验证登录,但方法不实用.package com.swift; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class Logi