2021年11月8日每日随笔

发布时间 2023-11-09 09:43:41作者: 实名吓我一跳

  今天学了软件构造,进行C#的mysql连接

准备环境

菜单栏 -> 工具 -> NuGet包管理器(N) -> 管理解决方案的NuGet程序包(N) -> 点击确定(添加成功后会弹窗提示)->进入后进行搜索mysql -> 进行安装

进行使用

导入命名空间:using MySql.Data.MySqlClient;

using System;
using MySql.Data.MySqlClient;

namespace MySqlDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 连接字符串,替换为你的数据库信息
            string connectionString = "server=localhost;user=root;database=testdb;port=3306;password=your_password";

            // 创建连接对象
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                // 打开连接
                connection.Open();

                // 插入数据
                string insertSql = "INSERT INTO users (name, age) VALUES (@name, @age)";
                using (MySqlCommand command = new MySqlCommand(insertSql, connection))
                {
                    command.Parameters.AddWithValue("@name", "张三");
                    command.Parameters.AddWithValue("@age", 25);
                    command.ExecuteNonQuery();
                }

                // 查询数据
                string selectSql = "SELECT * FROM users";
                using (MySqlCommand command = new MySqlCommand(selectSql, connection))
                {
                    using (MySqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Console.WriteLine($"ID: {reader["id"]}, Name: {reader["name"]}, Age: {reader["age"]}");
                        }
                    }
                }

                // 更新数据
                string updateSql = "UPDATE users SET age = @age WHERE id = @id";
                using (MySqlCommand command = new MySqlCommand(updateSql, connection))
                {
                    command.Parameters.AddWithValue("@id", 1);
                    command.Parameters.AddWithValue("@age", 26);
                    command.ExecuteNonQuery();
                }

                // 删除数据
                string deleteSql = "DELETE FROM users WHERE id = @id";
                using (MySqlCommand command = new MySqlCommand(deleteSql, connection))
                {
                    command.Parameters.AddWithValue("@id", 1);
                    command.ExecuteNonQuery();
                }
            }
        }
    }
}

注意:请将connectionString中的your_password替换为你的MySQL数据库密码。

这段代码是使用C#和MySql.Data库来操作MySQL数据库的示例。它包括了插入、查询、更新和删除数据的操作。

1. 首先,定义了一个连接字符串`connectionString`,其中包含了数据库的服务器地址、用户名、数据库名、端口号和密码等信息。请确保替换为你自己的实际数据库信息。

2. 使用`MySqlConnection`类创建一个连接对象`connection`,并使用`Open()`方法打开连接。

3. 接下来,执行插入数据的SQL语句。通过`MySqlCommand`类创建一个命令对象`command`,并将插入语句和连接对象传递给它。然后,使用`Parameters.AddWithValue()`方法添加参数值,最后调用`ExecuteNonQuery()`方法执行非查询类型的SQL语句。

4. 接着,执行查询数据的SQL语句。同样地,创建命令对象`command`,并将查询语句和连接对象传递给它。然后,使用`ExecuteReader()`方法执行查询操作,并通过循环遍历结果集,将每一行的数据打印到控制台。

5. 之后,执行更新数据的SQL语句。与插入和查询类似,创建命令对象`command`,并将更新语句和连接对象传递给它。然后,添加参数值,并调用`ExecuteNonQuery()`方法执行非查询类型的SQL语句。

6. 最后,执行删除数据的SQL语句。同样地,创建命令对象`command`,并将删除语句和连接对象传递给它。然后,添加参数值,并调用`ExecuteNonQuery()`方法执行非查询类型的SQL语句。

7. 在`using`语句块结束时,连接对象`connection`会自动关闭,释放资源。

请注意,为了运行此代码,你需要安装MySql.Data库并将其添加到你的项目中。

在这段代码中,使用了using语句来自动管理数据库连接和命令对象的生命周期。当using语句块结束时,连接对象和命令对象会自动关闭,释放资源。因此,不需要显式地关闭数据。