首页  ·  知识 ·  数据库
DataGridView控件读写MySQL数据库表格的方法
网友       编辑:dezai   图片来源:网络
DataGridView是VS中表格化显示数据的控件,功能强大,使用方便。MySQL是简便易用的免费的关系数据库管理系统。下面介绍在 DataGridView中显示MySQL
DataGridView是VS中表格化显示数据的控件,功能强大,使用方便。MySQL是简便易用的免费的关系数据库管理系统。下面介绍在 DataGridView中显示MySQL中表格数据,以及将DataGridView中更新(插入、删除、修改)后的数据返回到MySQL中的表格保存的方法。

要在VS中使用MySQL,最方便的办法是使用ADO.NET。这需要安装MySQL的connector/.NET,它提供了MySQL到.NET的接口类。

MySQL connector/.NET安装完成后,在Visul Studio的解决方案资源管理器中,右键项目名,添加引用:MySql.Data。在代码页添加命名空间:

using MySql.Data.MySqlClient;

即可使用MySQL connector/.NET中提供的类。

DataGridView使用绑定MySQL中的表格数据的方式来显示并更新其数据。

下面为某一打开某数据库中的表格并在DataGridView显示其数据的事件处理程序:

MySqlConnection conn; // mysql连接
MySqlDataAdapter myadp; // mysql数据适配器
DataSet myds; // 数据集

 

string MyConnectionString;
MyConnectionString = "server = localhost; uid = root; pwd = 123456; database = mytest";
try

{

//打开菜单配置数据库连接

conn = new MySqlConnection(); // 实例化数据库连接(instanced)
conn.ConnectionString = MyConnectionString ; // 配置连接(configured)
conn.Open(); // 打开连接(opened)

myadp = new MySqlDataAdapter("select * from table1", conn);
myds = new DataSet();
// 填充和绑定数据
myadp.Fill(myds, "table1");
bindingSource1.DataSource = myds.Tables["table1"];

dataGridView1.DataSource = bindingSource1;

}

catch (MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("不能连接到数据库服务器,请联系数据库管理员!"); break;
case 1045:
MessageBox.Show("无效的用户名/密码,请重试!"); break;
case 1049:
MessageBox.Show("数据库不存在,或数据库名错误"); break;
default :
MessageBox.Show(ex.Message); break;
}
}

 

此时即可在DataGridView中显示table1中的数据。

如果要将DataGridView更新后的数据传回到table1中,则在事件处理代码中使用如下指令:

string MyConnectionString;
MyConnectionString = "server = localhost; uid = root; pwd = 123456; database = mytest";
try
{

bindingSource1.DataSource = myds.Tables["table1"];
dataGridView1.DataSource = bindingSource1;

MySqlCommandBuilder mycb = new MySqlCommandBuilder(myadp);
myadp.Update(myds, "table1");

}

catch

{

……

}

 

使用MySqlCommandBuilder可以避免自己编写SQL的语句,从而Update时,MySQLDataAdapter可以根据用户操作自动判别是修改、删除还是插入特性,并生成相应的SQL命令用来更新数据库。

本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读