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命令用来更新数据库。
本文作者:网友 来源:网络