C#操作MySQL数据库

必要准备:SQLyog(MySQL数据库可视化辅助软件)  提取码uq2v。 MySQL数据库下载 提取码:n76g。 

一、综述

根据操作数据库时是否需要一直连接的特点,将行为分为两种。第一种是对数据库始终保持连接状态;第二种是先将数据暂存于内存中,操作是对内存的数据,操作完成后,更新数据库,如图1所示。

C#操作MySQL数据库_第1张图片 图1 操作数据库的方式

二、长连数据库

(1)测试界面,如图2所示。

C#操作MySQL数据库_第2张图片 图2 测试界面

(2)示例代码。 

private void Button1_Click(object sender, EventArgs e)
{
    //一、建立连接。
    string connStr = "data source=localhost;uid=root;pwd=123456;database=teaching_database;SslMode = none"; 
    MySqlConnection conn = new MySqlConnection(connStr); //生成连接对象。
    try
    {
        conn.Open();
    }catch(Exception ex) //连接失败,需要捕获抛出的异常
    {
        MessageBox.Show(ex.ToString(), "错误信息");
    }
    //二、生成命令。
    string sqlStr = "select * from 测试 where 性别 = @sex"; //和下文的"@sex"对应。
    MySqlCommand cmd = new MySqlCommand(sqlStr, conn); //生成命令构造器对象。
    cmd.Parameters.AddWithValue("@sex", textBox_sex.Text);
    //三、查询结果。
    MySqlDataReader rdr = cmd.ExecuteReader();
    try
    {
        while (rdr.Read())//Read()函数设计的时候是按行查询,查完一行换下一行。
        {
            string s1 = rdr[0].ToString();
            string s2 = rdr[1].ToString();
        }
    }catch(Exception ex)
    {
        MessageBox.Show(ex.ToString(), "错误信息");
    }
}

(3)SQLyog展示的表格内容,如图3所示。 

C#操作MySQL数据库_第3张图片 图3 SQLyog内表内容

(4)单步调试观察运行结果是否匹配,如图4所示。

C#操作MySQL数据库_第4张图片 图4

三、处理解耦数据

(1)测试界面,如图5所示。

C#操作MySQL数据库_第5张图片 图5 解耦数据测试

(2)示例代码。

导入按钮的实现:

private void Button1_Click(object sender, EventArgs e)
{
    string connStr = "data source=localhost;uid=root;pwd=123456;database=teaching_database;SslMode = none"; 
    MySqlConnection conn = new MySqlConnection(connStr);

    string sqlStr = "select * from 测试"; //
    adapter = new MySqlDataAdapter(sqlStr, conn);
    set = new DataSet(); //数据集、本地微型数据库可以存储多张表。
    adapter.Fill(set,"测试");

    dataGridView1.DataSource = set;
    dataGridView1.DataMember = "测试";
}

 更新按钮的实现:

private void button1_Click_1(object sender, EventArgs e)
{
    if(adapter == null || set == null) //先导入数据才能更新数据。
    {
        MessageBox.Show("请先导入数据");
        return;
    }
    try
    {
        string msg = "确实要更新吗?";
        if(1 == (int)MessageBox.Show(msg, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
        {
            MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter); //命令生成器。
            adapter.Update(set, "测试");
            MessageBox.Show("更新成功", "提示");
        }
    }catch(Exception ex)
    {
        MessageBox.Show(ex.ToString(), "错误信息");
    }
}

(3)运行测试:运行结果如图6 所示。

C#操作MySQL数据库_第6张图片 图6 运行结果

四、参考资料

【1】C# - MySQL数据库编程 简明教程

【2】C#操作数据库教程

【3】DataGridView编辑后立即更新到数据库的两种方法

【4】C# 中的MessageBox 弹出提示框(消息框)的用法

你可能感兴趣的:(C#操作MySQL数据库)