前文
本文旨在展现如何通过C#来操作MySQL数据库,本文通过一个简单范例展示了如何实现这一功能。
准备
- MySQL WorkBench8.0 CE
- VS2013
正文
1.两种连接方式
根据操作数据库时是否需要一直连接的特点,将行为分为两种:
第一种是对数据库始终保持连接状态;
第二种是先将数据暂存于内存中,操作是对内存的数据,操作完成后,更新数据库,如图1所示。
2.长连接
1.新建需要测试的Table:test
1.首先我们建立好如图的winform窗体
这里我们希望实现根据名字查询其对应的性别这一功能,首先要知道名字下拉框中的包含哪些名字,这里我们要实现的时对数据库的读取功能。
2.获取名字
我们通过导入名字这一按钮的点击事件实现这一功能。
private void btnGetName_Click(object sender, EventArgs e)
{
//建立链接
string connStr = "datasource=127.0.0.1;uid=root;pwd=root;database=test;port=3306;SslMode = none";
conn = new MySqlConnection(connStr); //生成连接对象。
try
{
conn.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "错误信息");
}
//生成命令
string sqlstr = "select name from test "; //首先我们需要获得名字这一列
MySqlCommand cmd = new MySqlCommand(sqlstr, conn);
//查询结果
rdr = cmd.ExecuteReader();
try
{
while (rdr.Read())
{
//将查询结果添加给cbxName
cbxName.Items.Add(rdr["name"]);
}
rdr.Close();//这里声明一个DataReader,如果声明两个会抛异常,如果想重新声明,那必须
//关掉之前哪个DataReader
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "错误信息");
}
}
3.查询功能通过查询点击按钮事件实现
private void btnSearch_Click(object sender, EventArgs e)
{
//获取cbxName选中的文本
string name = cbxName.SelectedItem.ToString();
//生成命令
string search = "select gender from test where name = " + "'" + name + "'";
MySqlCommand searchcmd = new MySqlCommand(search, conn);
//获取信息
rdr = searchcmd.ExecuteReader();
try
{
while (rdr.Read())
{
//将查询结果添加给cbxName
textBox1.Text = rdr["gender"].ToString();
}
rdr.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "错误信息");
}
}
4.测试
3.处理解耦数据
该部分可以参考以下网址中关于处理解耦数据的范例。
Tips(有问题看这)
- 未能找到类型或命名空间名称“MySql”(是否缺少 using 指令或程序集引用?
出现该问题是因为,MySql版本和框架版本不一致导致的,将框架与MySql程序集版本统一即可,例如以下警告中:
警告 6 未能解析主引用“MySql.Data, Version=8.0.23.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL”,因为它是针对“.NETFramework,Version=v4.5.2”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.5”。 MySQL测试
那么我们将项目的.net框架设置为v4.5.2即可
如果你觉得本文还不错的话,请点赞,评论,转发,收藏,你的鼓励是我原创分享的最大动力!!!