C#实现MySQL的SELECT查询

C#实现MySQL的SELECT查询

在C#中操作MySQL数据库需要以下步骤:

1. 安装驱动

通过NuGet安装MySql.Data包:

Install-Package MySql.Data -Version 8.0.33
2. 基础代码实现
using MySql.Data.MySqlClient;
using System;

class Program
{
    static void Main()
    {
        // 数据库连接配置(替换实际参数)
        string server = "localhost";
        string database = "your_db";
        string uid = "root";
        string password = "your_password";
        
        string connStr = $"Server={server};Database={database};Uid={uid};Pwd={password};";

        using (MySqlConnection conn = new MySqlConnection(connStr))
        {
            try
            {
                conn.Open();
                string sql = "SELECT id, name, email FROM users";
                
                using (MySqlCommand cmd = new MySqlCommand(sql, conn))
                using (MySqlDataReader reader = cmd.ExecuteReader())
                {
                    Console.WriteLine("查询结果:");
                    Console.WriteLine("ID\tName\tEmail");
                    Console.WriteLine("----------------------------");
                    
                    while (reader.Read())
                    {
                        int id = reader.GetInt32("id");
                        string name = reader.GetString("name");
                        string email = reader.GetString("email");
                        
                        Console.WriteLine($"{id}\t{name}\t{email}");
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"错误: {ex.Message}");
            }
        }
    }
}
3. 关键组件说明
组件作用
MySqlConnection建立数据库连接
MySqlCommand执行SQL命令
MySqlDataReader逐行读取查询结果
ExecuteReader()执行SELECT返回数据流
reader.Read()移动到下一行记录
reader.GetXXX()按列名/索引获取具体值
4. 参数化查询(防SQL注入)
string sql = "SELECT * FROM products WHERE price > @minPrice AND category = @cat";
using (MySqlCommand cmd = new MySqlCommand(sql, conn))
{
    cmd.Parameters.AddWithValue("@minPrice", 100.0);
    cmd.Parameters.AddWithValue("@cat", "Electronics");
    // ...执行查询...
}
5. 异常处理建议
  • 使用try-catch-finally确保连接关闭
  • 捕获特定异常类型:
    catch (MySqlException mysqlex)
    {
        Console.WriteLine($"数据库错误: {mysqlex.Number} - {mysqlex.Message}");
    }
    

注意:实际使用时需替换连接字符串参数,建议将敏感信息存储在配置文件中。对于大型数据集,可考虑使用DataSet或异步方法ExecuteReaderAsync()提高性能。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值