基本是通用的

C#与MySQL的交互, 先添加MySQL.Data.dll(位于MySQL安装目录下的Connector NET 8.0\Assemblies${version}目录下)引用, 之后代码中使用步骤如下(SELECT未使用预处理)

Web.config 中定义 MySqlConstructorString字符串, 用于配置数据库连接
<add key="MySqlConstructorString" value="Server=localhost;User Id=root;Password=myPassword;PersistSecurityInfo=True;Port=3306;DataBase=DemoDataBase;Charset=utf8mb4;SslMode=none" />

使用的代码:

using System.Web.Mvc;
using MySql.Data.MySqlClient;

namespace WebDemo.Controllers
{
    public class DemoController : Controller
    {
        public string ExecuteSQL()
        {
            MySqlConnection mySqlConnection = new MySqlConnection(System.Configuration.ConfigurationManager.AppSettings["MySqlConstructorString"]);
            mySqlConnection.Open();
            // 使用预处理的占位符, 参数2传入了 MySqlConnection 对象
            MySqlCommand mySqlCommand = new MySqlCommand(
                "INSERT INTO `DemoTable` (`row_id`, `title`, `author`, `introduction`, `create_date`) VALUES (UUID(), ?title, ?author, ?introduction, ?createDate);",
                mySqlConnection);

            // 创建预处理信息
            MySqlParameter titleParameter = new MySqlParameter("?title", MySqlDbType.VarChar, 50);
            MySqlParameter authorParameter = new MySqlParameter("?author", MySqlDbType.VarChar, 30);
            MySqlParameter introductionParameter = new MySqlParameter("?introduction", MySqlDbType.VarChar, 1000);
            MySqlParameter createDateParameter = new MySqlParameter("?createDate", MySqlDbType.Date);

            // 绑定数据
            titleParameter.Value = "少有人走的路";
            authorParameter.Value = "派克";
            introductionParameter.Value = "心智成熟之旅";
            createDateParameter.Value = "2018-06-20";

            // 添加绑定
            mySqlCommand.Parameters.Add(titleParameter);
            mySqlCommand.Parameters.Add(authorParameter);
            mySqlCommand.Parameters.Add(introductionParameter);
            mySqlCommand.Parameters.Add(createDateParameter);

            // 预处理
            mySqlCommand.Prepare();

            // MySqlCommand 的 ExecuteNonQuery 方法
            string executeResult = mySqlCommand.ExecuteNonQuery() > 0 ? "执行成功" : "执行失败";

            // 多次执行, 无需重复绑定与预处理, 直接替换数据即可
            titleParameter.Value = "穷爸爸富爸爸";
            authorParameter.Value = "清崎";
            introductionParameter.Value = "资产与负债";
            createDateParameter.Value = "2018-06-20";
            executeResult += " | " + (mySqlCommand.ExecuteNonQuery() > 0 ? "执行成功" : "执行失败");

            // 记得关闭资源
            mySqlConnection.Close();
            return executeResult;
        }

        public string QueryFromDB()
        {
            MySqlConnection mySqlConnection = new MySqlConnection(System.Configuration.ConfigurationManager.AppSettings["MySqlConstructorString"]);
            mySqlConnection.Open();
            MySqlCommand mySqlCommand = new MySqlCommand(
                "SELECT `title`, `author`, `introduction` FROM DemoTable;",
                mySqlConnection);
            // SELECT 与 INSERT, DELECT, UPDATE 的不同之处
            MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();
            string displayString = "";
            // MySqlDataReader 的 Read() 方法用于将 MySqlDataReader 移动到下一个记录, 需要注意使用第一行记录前也需要先 Read()
            while (mySqlDataReader.Read())
            {
                // 使用索引符来访问数据
                displayString += "Book Name: " + mySqlDataReader[0] + "   Author: " + mySqlDataReader[1] + "   Introduction: " + mySqlDataReader[2] + "<br/><br/>";
            }
            // 关闭资源
            mySqlDataReader.Close();
            mySqlConnection.Close();
            return displayString;
        }
    }
}

ASP.NET 使用 MySQL的更多相关文章

  1. ASP.NET 连接MySQL数据库 详细步骤

    ASP.NET默认的数据库是MS SQL Server,微软的数据库产品.事实上,如果不计成本因素的话,Windows Server + IIS + MS SQL Server + ASP.NET是网 ...

  2. Asp.Net连接Mysql报错Out of sync with server

    Asp.Net连接Mysql报错Out of sync with server 原因:程序引用的MySql.Data.dll版本高于服务器版本 解决:下载一个低版本的MySql.Data.dll,项目 ...

  3. ASP.NET 访问 MySql

    1. 首先需要安装mysql, 脚本之家下载地址: http://www.jb51.net/softs/2193.html 或者去mysql.com官网都可以,一路next,安装好后,有个简单配置,提 ...

  4. asp.net使用Mysql乱码处理

    在asp.net与mysql数据库打交道的时候,由于配置的问题,会遇到自己写的方法在读取数据库中数据的时候,英文,数字可以正常通过,但是中文就无法通过,以登录为例(方法略),当输入英文用户名的时候可以 ...

  5. asp.net使用mysql数据库

    Asp.net连接mysql 不推荐使用ODBC,推荐是用mysql官网提供的组件MySQL.Data.Dll,放在bin下面,添加引用即可 下面是封装的几个常用操作 using System; us ...

  6. asp.net core + mysql + ef core + linux

    asp.net core + mysql + ef core + linux 以前开发网站是针对windows平台,在iis上部署.由于这次需求的目标服务器是linux系统,就尝试用跨平台的.NET ...

  7. Asp.Net操作MySql数据库增删改查

    Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git  1.安装MySQL数据库 ...

  8. 腾讯云-ASP.NET Core+Mysql+Jexus+CDN上云实践

    腾讯云-ASP.NET Core+Mysql+Jexus+CDN上云实践.md 开通腾讯云服务器和Mysql 知识点: ASP.NET Core和 Entity Framework Core的使用 L ...

  9. 解决 ASP.NET Core MySql varchar 字符串截取(长度 255)

    ASP.NET Core 中使用 MySql,如果字段类型为varchar,不管设置多少长度,插入或更新数据的时候,会自动截断(截取 255 长度的字符). 出现问题的原因,就是使用了MySql.Da ...

  10. ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx

    一.前言 在之前的文章(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路)中,我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core ...

随机推荐

  1. Android 6.0 动态权限申请

    1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在 ...

  2. sql:表中数据全部删除之后,重新插入时,从1开始增加

    数据库中设置了自增列,有时候需要清楚数据库从新录入数据.最常见的做法就是使用sql语句"delete 表明名"或是直接选中数据,然后删除数据.但是再次插入数据的时候,你就会发现自增 ...

  3. 在windows bat脚本(batch)中延时

    编写bat脚本时,有事我们希望在指令和指令之间,加入延时.例如当一条指令执行后,windows需要一定时间来响应的情况. 以下是一种实现方法,通过ping 指令来实现,5表示ping5次,就是延时5秒 ...

  4. word文档快速转换为PPT演示文稿

    方法一: 访问http://t.im/pdftoppt,点击继续浏览(会跳转至:https://smallpdf.com/cn/pdf-to-ppt): 打开word文档,设置为“横向”,输出为PDF ...

  5. wxWidgets窗口类型

    如果在创建窗口的时候你没有指定窗口的边框类型,那么在不同的平台上将会有不同的边框类型的缺省值.在windows平台上,控件边框的缺省值为 wxSUNKEN_BORDER,意为使用当前系统风格的边框.你 ...

  6. SQL SERVER 下:1、递归查询父分类下的各个子分类。 2、查询每个商品分类中最贵的前两个商品SQL

    1.递归查询父分类下的各个子分类.表设计: SQL: --CTE 语句(适用于MSSQL2005以后版本) with cte_testNavi(Id,Name,Pid ) as ( --这是查询语句 ...

  7. POJ-3274 Gold Balanced Lineup---hash经典题!

    题目链接: https://vjudge.net/problem/POJ-3274 题目大意: 给定多头牛的属性,每头牛的属性由一个非负数表示,该数的二进制表示不会超过K位,它的二进制表示的每一位若为 ...

  8. fast rcnn的实例

    http://www.cnblogs.com/louyihang-loves-baiyan/p/4906690.html https://saicoco.github.io/object-detect ...

  9. Git log、diff、config 进阶

    前一段时间分享了一篇<更好的 git log>简要介绍怎么美化 git log 命令,其中提到了 alias命令,今天再继续谈谈 git相关, 看看如何通过配置自己的 git config ...

  10. 刚学不久的python,自己稍微加工了一点,影响不大,因为博主很懒,所以格式什么的,就没有太在意了!

    本人初学python,之前因为有接触过其他语言,但是并没有接触的太深,出于对一个hacker的向往,学习一下Linux和python再说,当然,也是为了高工资啦,啊哈哈哈! 一开始就是一个蛮有意思的小 ...