.net core 连接mysql并进行增删数据 不使用插件用最原始的方法
时间: 2024-11-27 13:11:38 浏览: 4
C#连接MySQL代码和测试数据库
在.NET Core中连接MySQL数据库并执行增删操作不使用预装的ORM框架(如Entity Framework Core),你可以选择直接使用`System.Data.SqlClient`命名空间中的`MySqlClient`驱动程序或`Pomelo.EntityFrameworkCore.MySql`(如果你要使用EF Core)。以下是一个基本步骤,展示如何手动创建连接、执行SQL命令和关闭连接:
**使用MySqlClient**
1. 首先,安装`MySql.Data` NuGet包(如果尚未安装):
```bash
dotnet add package MySql.Data
```
2. 在代码中添加所需引用:
```csharp
using System;
using MySql.Data.MySqlClient;
```
3. 创建连接:
```csharp
string connectionString = "Server=<your_server>;Database=<your_database>;User Id=<your_username>;Password=<your_password>";
MySqlConnection connection = new MySqlConnection(connectionString);
try
{
connection.Open();
}
catch (Exception ex)
{
Console.WriteLine($"Error connecting to MySQL: {ex.Message}");
}
```
4. 执行增删操作(这里仅示例,假设有个名为`Users`的表,字段有`Id`, `Name`):
- 插入数据:
```csharp
string insertQuery = "INSERT INTO Users (Name) VALUES (@name)";
MySqlCommand command = new MySqlCommand(insertQuery, connection);
command.Parameters.AddWithValue("@name", "John Doe");
command.ExecuteNonQuery();
```
- 删除数据:
```csharp
string deleteQuery = "DELETE FROM Users WHERE Id = @id";
command = new MySqlCommand(deleteQuery, connection);
command.Parameters.AddWithValue("@id", 1); // 替换为实际ID
int rowsAffected = command.ExecuteNonQuery();
if (rowsAffected > 0)
{
Console.WriteLine("Record deleted successfully.");
}
else
{
Console.WriteLine("No records found to delete.");
}
```
5. 关闭连接:
```csharp
connection.Close();
```
**使用EF Core + pymysql (非官方推荐,因为缺乏支持)**
如果你想尝试使用非官方的pymysql库,你可以这样做,但请注意这并非最佳实践:
```csharp
// 使用NuGet包Pomelo.EntityFrameworkCore.MySql
dotnet add package Pomelo.EntityFrameworkCore.MySql
// 在Startup.cs配置上下文
services.AddDbContext<ApplicationDbContext>(options =>
options.UseMySql("<your_connection_string>", ServerVersion.Parse("8.0.21")));
// 然后在控制器中手动执行迁移和模型生成
var context = services.GetRequiredService<ApplicationDbContext>();
context.Database.Migrate();
// 增删操作:
var user = new User { Name = "John Doe" };
context.Users.Add(user);
context.SaveChanges(); // 插入
var userToRemove = context.Users.Find(1);
context.Users.Remove(userToRemove);
context.SaveChanges(); // 删除
```
注意:官方推荐使用Microsoft.Data.SqlClient与Entity Framework Core一起工作。
阅读全文