当前位置:首页 > 行业动态 > 正文

C 如何连接并操作 MySQL 数据库服务器?

在C#中连接MySQL数据库服务器地址,首先需要添加对MySQL .NET Connector的引用。然后创建连接字符串,包含服务器地址、数据库名称、用户名和密码等信息。接着使用MySqlConnection类建立连接,并可通过MySqlCommand执行SQL查询或更新操作。

在C#中连接MySQL数据库服务器,需要经过以下步骤:

C 如何连接并操作 MySQL 数据库服务器?  第1张

1、安装 MySQL Connector/NET:通过 NuGet 包管理器安装 MySQLConnector 库,在 Visual Studio 的“工具”菜单中选择“NuGet 包管理器”,搜索并安装 MySql.Data 库。

2、导入命名空间:在 C# 代码中,导入以下命名空间:using MySqlConnector;。

3、创建连接字符串:要建立连接,需要创建一个连接字符串,连接字符串包含指向数据库服务器的信息,例如主机、用户名、密码和数据库名称。

string connectionString = "Server=localhost;User Id=root;Password=mypassword;Database=mydatabase";

string M_str_sqlcon = "server=服务器ip地址;User Id=用户名;password=用户密码;Database=数据库名字";

4、创建连接对象并打开连接:使用MySqlConnection 类创建连接对象并打开连接。

using (MySqlConnection connection = new MySqlConnection(connectionString)) { connection.Open(); }

MySqlConnection sqlCon = new MySqlConnection(M_str_sqlcon); sqlCon.Open();

5、执行查询:使用MySqlCommand 类执行 SQL 查询,以下示例使用ExecuteReader() 方法执行查询并遍历结果:

using (MySqlCommand command = new MySqlCommand("SELECT * FROM mytable", connection)) { using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { // 处理查询结果 } }

MySqlCommand mycmd = new MySqlCommand("select * from t_dept where TITLE like '%p%'", sqlCon);

6、关闭连接:使用完连接后,请务必关闭它以释放资源。

connection.Close();

sqlCon.Close();

以下是一个完整的示例代码,展示了如何使用 C# 连接 MySQL 数据库并执行简单的查询:

using System;
using MySqlConnector;
namespace MySQLConnectionExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "Server=localhost;User Id=root;Password=mypassword;Database=mydatabase";
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    Console.WriteLine("已经建立连接");
                    MySqlCommand command = new MySqlCommand("SELECT * FROM mytable", connection);
                    using (MySqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            // 假设表中有两列:id 和 name
                            int id = reader.GetInt32("id");
                            string name = reader.GetString("name");
                            Console.WriteLine($"ID: {id}, Name: {name}");
                        }
                    }
                }
                catch (MySqlException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
    }
}

FAQs

1、问:如果连接字符串中的端口号不是默认的 3306,该如何指定?

答:可以在连接字符串中添加port 参数来指定端口号。string connectionString = "Server=localhost;Port=3307;User Id=root;Password=mypassword;Database=mydatabase";。

2、问:如何捕获连接过程中的错误并进行相应的处理?

答:可以使用try-catch 语句来捕获MySqlException 异常,并根据异常的Number 属性来判断错误类型,然后进行相应的处理。

   try
   {
       connection.Open();
   }
   catch (MySqlException ex)
   {
       switch (ex.Number)
       {
           case 0:
               Console.WriteLine("Cannot connect to server. Contact administrator");
               break;
           case 1045:
               Console.WriteLine("Invalid username/password, please try again");
               break;
           default:
               Console.WriteLine(ex.Message);
               break;
       }
   }
0