.NET连接MySQL数据库的方法实现

摘要:
突然间,是的,NET对连接MySQL数据库很感兴趣,所以我上网到处查找信息,了解MySQL的安装、MySQL的使用等,最终得到了它!安装方法请参考本文:如果在安装后的MySQL 5.6版本的下载、安装和配置过程中未找到以下文件,则表示没有对应的驱动程序。NET平台,您也应该在官方网站上下载并安装它们。有关详细信息,请参阅以下博客文章:。net连接到MySQL。实际上,它是对上与MySql相关的类库的引用。NET平台,然后是代码编辑:1.首先,需要在配置文件中配置数据库的连接字段。网状物配置˂?

突然对.NET连接MySQL数据库有点兴趣,于是乎网上到处找资料,学习MySQL的安装,MySQL的使用等等等等,终于搞定了!

最终效果就是显示数据库中数据表的数据:

.NET连接MySQL数据库的方法实现第1张

首先,当然要有MySQL数据库啦,MySQL下载地址:www.mysql.com/downloads/ ,我下载的是最新版本的MySQL。

安装方法可以参考这篇文章:5.6版本MySQL的下载、安装及配置过程

如果安装完成后发现没有以下文件,说明还没有.NET平台对应的驱动,也要到官网去下载安装,方法具体可以参照这篇博文:.net连接MySQL的方法 。

.NET连接MySQL数据库的方法实现第2张

其实就是对.NET平台MySql相关类库的引用

.NET连接MySQL数据库的方法实现第3张

然后就是代码的编辑啦:

1.要先在配置文件中配置数据库的连接字段,和SqlServer 一样的

Web.config

<?xml version="1.0" encoding="utf-8"?>

<!--
  有关如何配置 ASP.NET 应用程序的详细消息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <connectionStrings>
    <add name="connStr" connectionString="server =localhost;port=3306; user id = root; password = 111111; database = yc_test"/>
  </connectionStrings>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>

</configuration>

2.个人根据别人的sql的助手类,写了个简单的MySql助手类o(∩_∩)o ,参照博文:自己封装的SQLHelper

MySQlHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MySql.Data.MySqlClient;
using System.Configuration;
using System.Data;
/**
 *创建人:Yc
 *说明:数据库助手类
 */
namespace MySql_Try
{
    public class MySQlHelper
    {
        private MySqlConnection conn = null;
        private MySqlCommand cmd = null;
        private MySqlDataReader sdr;
        private MySqlDataAdapter sda = null;
        public MySQlHelper() {
            string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; //获取MySql数据库连接字符串
            conn = new MySqlConnection(connStr); //数据库连接
        }

        /// <summary>
        /// 打开数据库链接
        /// </summary>
        /// <returns></returns>
        private MySqlConnection GetConn() { 
        if(conn.State== ConnectionState.Closed)
        {
            conn.Open();
        }
        return conn;
        }

        /// <summary>
        ///  关闭数据库链接
        /// </summary>
        private void GetConnClose()
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        /// <summary>
        /// 执行不带参数的增删改SQL语句或存储过程
        /// </summary>
        /// <param name="cmdText">增删改SQL语句或存储过程的字符串</param>
        /// <param name="ct">命令类型</param>
        /// <returns>受影响的函数</returns>
        public int ExecuteNonQuery(string cmdText,CommandType ct) {
            int res;
            using(cmd = new MySqlCommand(cmdText,GetConn()))
            {
                cmd.CommandType = ct;
                res = cmd.ExecuteNonQuery();
            }
            return res;
        }

        /// <summary>
        /// 执行带参数的增删改SQL语句或存储过程
        /// </summary>
        /// <param name="cmdText">增删改SQL语句或存储过程的字符串</param>
        /// <param name="paras">往存储过程或SQL中赋的参数集合</param>
        /// <param name="ct">命令类型</param>
        /// <returns>受影响的函数</returns>
        public int ExecuteNonQuery(string cmdText,MySqlParameter[] paras,CommandType ct)
        {
            int res;
            using(cmd = new MySqlCommand(cmdText,GetConn()))
            {
                cmd.CommandType = ct;
                cmd.Parameters.AddRange(paras);
                res = cmd.ExecuteNonQuery();    
            }
            return res;
        }

        /// <summary>
        /// 执行不带参数的查询SQL语句或存储过程
        /// </summary>
        /// <param name="cmdText">查询SQL语句或存储过程的字符串</param>
        /// <param name="ct">命令类型</param>
        /// <returns>查询到的DataTable对象</returns>
        public DataTable ExecuteQuery(string cmdText,CommandType ct)
        {
            DataTable dt = new DataTable();
            cmd = new MySqlCommand(cmdText,GetConn());
            cmd.CommandType = ct;
            using(sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
            }
            return dt;
        }

        /// <summary>
        /// 执行带参数的查询SQL语句或存储过程
        /// </summary>
        /// <param name="cmdText">查询SQL语句或存储过程的字符串</param>
        /// <param name="paras">参数集合</param>
        /// <param name="ct">命令类型</param>
        /// <returns></returns>
        public DataTable ExecuteQuery(string cmdText,MySqlParameter[] paras,CommandType ct) 
        {
            DataTable dt = new DataTable();
            cmd = new MySqlCommand(cmdText,GetConn());
            cmd.CommandType = ct;
            cmd.Parameters.AddRange(paras);
            using(sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
            }
            return dt;
        }

        /// <summary>
        /// 执行指定数据库连接字符串的命令,返回DataSet.
        /// </summary>
        /// <param name="strSql">一个有效的数据库连接字符串</param>
        /// <returns>返回一个包含结果集的DataSet</returns>
        public DataSet ExecuteDataset(string strSql)
        {
            DataSet ds = new DataSet();
            sda = new MySqlDataAdapter(strSql,GetConn());
            try
            {
                sda.Fill(ds);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally {
                GetConnClose();
            }
            return ds;
        }
    }
}

3. 最后就是Web页面的前台和后台了

MySql_ToConnect.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MySql_ToConnect.aspx.cs" Inherits="MySql_Try.MySql_ToConnect" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>MySql数据库连接</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
   
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView> </div>
    </form>
</body>
</html>
MySql_ToConnect.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;
using System.Configuration;
using System.Data;

namespace MySql_Try
{
    public partial class MySql_ToConnect : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MySQlHelper h = new MySQlHelper();
            string sql = "select * from users";
            DataTable ds = h.ExecuteQuery(sql,CommandType.Text);
            //DataSet ds = h.ExecuteDataset(sql);
            GridView1.DataSource = ds;
            GridView1.DataBind();
          
        }

       
    }
}

免责声明:文章转载自《.NET连接MySQL数据库的方法实现》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Microsoft.SharePoint.Client 读取SharePoint 文件记Tomcat进程stop卡住问题定位处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

win10 mysql5.7忘记密码如何解决

点击开始菜单,搜索cmd.exe,左击以管理员身份运行 操作之前先备份好数据库(切忌) C:UsersAdministrator>cd C:Program FilesMySQLMySQL Server 5.7in C:Program FilesMySQLMySQL Server 5.7in>mysqld --skip-grants-tables...

Linux搭建lamp(Apache+PHP+Mysql环境)centos7.2版详细教程

一、 检查系统环境 1、确认centos版本 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 2、检查是否安装过apache rpm -qa | grep httpd 或者: apachectl -v 或者: httpd -v...

Mysql+Keepalived双主热备高可用操作记录

我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换。使用Keepalived,可以通过...

MySql/Oracle树形结构查询

Oracle树形结构递归查询 在Oracle中,对于树形查询可以使用start with ... connect by  select * from treeTable start with connect by id = prior parent_id; 若将一个树状结构存储在一张表里,需要在表中存入两个字段ID和PARENTID,表示每一条记录的p...

zabbix监控mysql以及其他常见

zabbix监控mysql以及其他常见,监控mysql,也可是使用percona提供的详细的模板,里面的监控项目非常的详细 <template>Template Percona MySQL Server</template> 1 监控mysql状态 [root@mysqlhq ~]# cat /usr/local/zabbix/et...

Android Verified Boot 2.0简要

from: https://ressrc.com/2018/10/26/android-verified-boot-2-0%E7%AE%80%E8%A6%81-thanksgining/   简要 AVB2.0被用于启动引导,此用法添加一个“vbmeta.img”镜像。public key被编译到bootloader中用于校验vbmeta数据,vb...