c# 操作mysql,C#操作MySQL数据库

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

一、综述

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

b3e84890b01a9ce8cabca794c35669b7.png 图1 操作数据库的方式

二、长连数据库

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

f0b847a254082c0eb3ba22f6b9304240.png 图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所示。

5ff6a65c27afc2c811c45856545a7644.png 图3 SQLyog内表内容

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

c28cdb25b0ddfc3c1cf67fe155e7058d.png 图4

三、处理解耦数据

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

95a22bda9e08c559de21cfcd6c2f7de3.png 图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 所示。

5c1b025f2cb0f936102d1cf82a8acee5.png 图6 运行结果

四、参考资料

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

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

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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值