C# Asp .core 连接 MySQL
MySQL是一个流行的关系型数据库管理系统,而C# Asp .core是一个用于构建Web应用程序的框架。本文将介绍如何使用C# Asp .core来连接MySQL数据库,并提供代码示例。
准备工作
在开始之前,确保已经安装了以下软件:
- MySQL数据库
- Visual Studio或者其他C#开发环境
连接MySQL数据库
首先,我们需要在C# Asp .core项目中安装MySQL数据库驱动程序。打开Visual Studio,创建一个新的C# Asp .core项目,然后打开项目的控制台。
使用NuGet包管理器,搜索并安装MySql.Data
包。这个包将提供与MySQL数据库的连接和交互功能。
1. 打开 Visual Studio
2. 创建一个新的 C# Asp .core 项目
3. 打开项目的控制台
4. 使用 NuGet 包管理器搜索并安装 MySql.Data 包
完成上述步骤后,我们可以开始编写代码连接MySQL数据库。
连接数据库
要连接MySQL数据库,我们需要提供数据库的连接字符串。连接字符串包含了数据库的地址、用户名、密码等必要信息。
在C# Asp .core项目中,可以将连接字符串存储在配置文件中,比如appsettings.json
。在这个文件中,我们可以定义一个名为ConnectionStrings
的节,然后将连接字符串作为一个键值对进行存储。
"ConnectionStrings": {
"DefaultConnection": "server=localhost;username=root;password=123456;database=mydatabase"
}
现在,我们可以在代码中读取这个连接字符串,并使用它来连接MySQL数据库。
using Microsoft.Extensions.Configuration;
using MySql.Data.MySqlClient;
// 读取 appsettings.json 文件中的连接字符串
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
string connectionString = configuration.GetConnectionString("DefaultConnection");
// 创建 MySQL 数据库连接
using MySqlConnection connection = new MySqlConnection(connectionString);
// 打开数据库连接
connection.Open();
// 连接已经建立,可以进行数据库操作
// 关闭数据库连接
connection.Close();
上述代码使用ConfigurationBuilder
来读取appsettings.json
文件中的连接字符串。然后,使用MySqlConnection
类创建一个MySQL数据库连接对象。最后,通过调用Open
和Close
方法来打开和关闭数据库连接。
执行SQL查询
一旦连接到MySQL数据库,我们可以执行SQL查询来操作数据库。
下面的示例展示了如何执行一个简单的SELECT查询,并将结果输出到控制台。
using (var command = new MySqlCommand("SELECT * FROM customers", connection))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
int id = reader.GetInt32("id");
string name = reader.GetString("name");
string email = reader.GetString("email");
Console.WriteLine($"ID: {id}, Name: {name}, Email: {email}");
}
}
}
上述代码使用MySqlCommand
对象来执行SQL查询。然后,使用MySqlDataReader
对象读取查询结果。在循环中,我们可以使用不同的方法来读取不同类型的数据,比如GetInt32
和GetString
。
插入数据
要向MySQL数据库插入数据,我们可以执行一个INSERT语句。
string sql = "INSERT INTO customers (name, email) VALUES (@name, @email)";
using (var command = new MySqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@name", "John Doe");
command.Parameters.AddWithValue("@email", "john@example.com");
int rowsAffected = command.ExecuteNonQuery();
Console.WriteLine($"Rows affected: {rowsAffected}");
}
上述代码使用MySqlCommand
对象执行一个INSERT语句。我们可以使用Parameters.AddWithValue
方法来添加参数,并将其绑定到SQL语句中的占位符。最后,通过调用ExecuteNonQuery
方法来执行INSERT语句,并获取受影响的行数。
更新数据
如果我们想要更新MySQL数据库中的数据,可以执行一个UPDATE语句。
string sql = "UPDATE customers SET email = @newEmail WHERE email = @oldEmail";
using (var command = new MySqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@newEmail", "johndoe@example.com");
command.Parameters.AddWithValue("@oldEmail", "john@example.com");
int rowsAffected = command.ExecuteNonQuery();