ASP.NET 使用 MySQL

基本是通用的

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;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/seliote/p/9313014.html