【转】c#怎么连接数据库 用MySQL 详解

本文详细阐述了如何使用MySQL.net连接器实现用户登录功能,包括数据库连接、配置读取、SQL查询及错误处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、mysql官网下载 .net连接器

2、引用下载后的mysql.data.dll

3、程序开始加:using MySql.Data.MySqlClient;

4、连接数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  private void button1_Click(object sender, EventArgs e)//登入按钮
        {
            string power = comboBox1.Text.Trim();
            string user = textBox1.Text.Trim();
            string psd = textBox2.Text.Trim();
            string ipaddress = "";
            string mysqluser = "";
            string mysqlpsd = "";
 
            if (user == "")
            {
                MessageBox.Show("请输入用户名");
            }
            else if (psd == "")
            {
                MessageBox.Show("请输入密码");
            }
            else
            {
                try
                {
                    try
                    {
                        string[] getconfig = File.ReadAllLines("E:/project/configure.txt", Encoding.GetEncoding("gb2312"));
                        ipaddress = getconfig[0].Split(':')[1];//读取ip地址
                        mysqluser = getconfig[1].Split(':')[1];//读取数据库账号
                        mysqlpsd = getconfig[2].Split(':')[1]; //读取数据库密码       
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("配置文件丢失");
                        return;
                    }
 
                    string query = "SET names gb2312;SELECT COUNT(id) FROM fx_user WHERE name='" + user + "' AND password=MD5('" + psd + "') AND userid='" + power + "'";
                    MySqlConnection cn = new MySqlConnection("server=" + ipaddress + ";user id=" + mysqluser + ";Password=" + mysqlpsd + ";database=system;charset=gb2312");
                  
                cn.Open();
                    MySqlCommand cm = new MySqlCommand(query, cn);
                    MySqlDataReader read = cm.ExecuteReader();      //搜索满足 用户名,密码,操作员的记录。
                    //如果记录没有-->密码或用户名错误
                    if (read.Read())                                //如果记录多余1条-->数据错误,联系管理员
                    {                                               //只有一条记录则成功登入
                        int x = Int32.Parse(read[0].ToString());
                        if (x == 0)
                        {
                            MessageBox.Show("用户名或密码错误");
                        }
                        else if (x > 1)
                        {
                            MessageBox.Show("用户冲突,请联系管理员");
                        }
                        else if (x == 1)
                        {
                            //  MessageBox.Show("登入成功");
                            main mf = new main(power, ipaddress, mysqluser, mysqlpsd);   //将操作员 和 IP地址传入 主窗体 
 
                            mf.Show();
                            this.Hide();
                            cn.Close();
                        }
                    }
                }
                catch (MySql.Data.MySqlClient.MySqlException ex)
                {
                    switch (ex.Number)
                    {
                        case 0:
                            MessageBox.Show("数据库连接失败1");
                            break;
                        case 1045:
                            MessageBox.Show("数据库密码或用户名错误");
                            break;
                        default:
                            MessageBox.Show("数据库连接失败2");
                            break;
                    }
                }
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值