C# 数据库连接
目录
一、项目要求
二、数据库连接
2.1下载驱动:
2.2驱动介绍
2.3安装
2.4连接MySQL数据库
2.5添加MySQL的引用
三、数据库操作
3.1数据库连接
3.2在DataGridView中显示数据库中数据
3.3数据库基本操作
3.3.1查找
3.3.2删除
3.3.3修改
3.3.4添加
四、结果展示
五、代码仓库
一、项目要求
1、请设计一个项目连接到自己的MySQL数据库,数据库包含至少三张表;
2、使用dataGridView控件显示表中的数据;
3、实现基本crud操作;
二、数据库连接
2.1下载驱动:
1.mysql odbc驱动:
mysql-connector-odbc-8.0.20-winx64.msi
2.Visual Studio连接MySQL工具
mysql-for-visualstudio-1.2.9.msi
3.mysql数据库.net开发驱动
mysql-connector-net-8.0.20.msi
2.2驱动介绍
1.MySQL Connector/ODBC 有时也可以叫做 MyODBC,用户可以用ODBC (Open Database Connectivity,开放数据库互联)数据库连接Mysql的服务器。比如说,用户可以使用Windows或者Unix平台中的应用程序,如微软的 Access,Excel和Borland 的Delphi去连接数据库服务器。
2.mysql for visual studio(VS连接MySQL工具)是一款visual studio连mysql工具,它可以直接集成到Server Explorer中,为设置新连接和处理数据库对象提供无缝体验,但是想让VS访问到MySQL仅仅mysql for visual studio是不够的,还需要下载mysql connector net。
3.MySQL Connector/Net 是 MySQL 官方的 .NET 驱动程序,MySQL 官方的 .NET 客户端开发包。mysql 数据库最新版dotnet数据库连接驱动。
2.3安装
我们要用visual studio连接mysql只需要下载mysql for visual studio和MySQL Connector/Net
2.4连接MySQL数据库
安装完成后,需重启VS
然后添加数据库连接
选择MySQL数据库:
连接数据库:
连接成功:
2.5添加MySQL的引用
1.下载mysql.data.dll
2.选择引用
在项目中右键引用->添加引用->浏览->选中MySql.Data.dll文件->确定:
3.添加完成,点击引用,就可以看到已经添加mysql.data引用
三、数据库操作
3.1数据库连接
用户输入用户名和密码,从两个textbox中读取信息,点击连接后连接数据库
protected void btnClick(object sender, EventArgs e)
{
//与数据库连接的信息
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
builder.UserID = Account.Text; //用户名
builder.Password = Password.Text; //密码
builder.Server = "localhost"; //服务器地址
builder.Database = "test"; //连接时的数据库
MySqlConnection connection = new MySqlConnection(builder.ConnectionString); //定义与数据连接的链接
try
{
con.Open();//打开数据库连接
Response.Write("连接数据库查询成功");
SqlDataReader sdr = cmd.ExecuteReader();//执行SQL命令,并获取查询结果
GridView1.DataSource = sdr;//将查询结果连接到GridView1中
GridView1.DataBind();//将结果与GridView1绑定
}
catch (Exception ex)
{
Response.Write("连接失败,原因是" + ex.Message);
}
finally
{
if (con.State == System.Data.ConnectionState.Open) //判断数据库连接是否关闭
con.Close();//关闭数据库连接
}
}`
3.2在DataGridView中显示数据库中数据
因为显示数据库中的全部数据为常用操作,所以将其封装为一个函数QueryAll(),以便再次使用
private void all_data_Click(object sender, EventArgs e){
QueryAll();//在表格中显示全部数据
}
private void QueryAll(){
string sql = "SELECT * FROM userlist";
try
{
MySqlCommand cmd = new MySqlCommand(sql, conn);
// DataSet ds = new DataSet();
MySqlDataReader reader = cmd.ExecuteReader();//执行ExecuteReader()返回一个MySqlDataReader对象
//将bs的数据来源设置为reader对象
BindingSource bs = new BindingSource();
bs.DataSource = reader;
//将表格的数据来源设置为bs对象
this.dataGridView1.DataSource = bs;
//设置每一列的标题
dataGridView1.Columns[0].HeaderText = "账号";
dataGridView1.Columns[1].HeaderText = "姓名";
dataGridView1.Columns[2].HeaderText = "性别";
dataGridView1.Columns[3].HeaderText = "年龄";
dataGridView1.Columns[4].HeaderText = "电话";
//选择第四列不显示
dataGridView1.Columns[3].Visible = false;
reader.Close();
}
catch (Exception err)
{
MessageBox.Show("错误信息:" + err.Message + "\n错误来源:" + err.Source);
}
}
3.3数据库基本操作
3.3.1查找
查找功能是获取文本框中输入的内容,再到数据库中进行对比,将结果显示到表格中
private void btnQuery_Click(object sender, EventArgs e){
if(textBox1.Text!="")
QueryLike();
else
MessageBox.Show("输入的内容不可为空");
}
private void QueryLike() {
string sql = string.Format("SElECT * FROM userlist WHERE U_NAME='{0}'",textBox1.Text);
try
{
MySqlCommand mcom = new MySqlCommand(sql,conn);
//使用数据库数据适配器,将数据填充
MySqlDataAdapter sda = new MySqlDataAdapter(sql, conn);
//创建DataSet类的对象
DataSet ds = new DataSet();
//使用SqlDataAdapter对象sda将查询结果填充到DataSet对象ds中
sda.Fill(ds);
//设置表格控件的数据来源为ds
dataGridView1.DataSource = ds.Tables[0];
// mreader.Close();
}
catch (Exception err)
{
MessageBox.Show("错误信息:" + err.Message + "\n错误来源:" + err.Source);
throw;
}
}
3.3.2删除
private void btnDelect_Click(object sender, EventArgs e)
{
int id = int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
//string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); //选中行的第1行,第2列
//数据库连接串
try
{
//MySqlConnection conn = new MySqlConnection(connStr);
string sql = string.Format("delete from userlist where U_ID={0}",id);
//填充占位符
//创建命令执行器对象
MySqlCommand cmd = new MySqlCommand(sql,conn);
//执行SQL语句
cmd.ExecuteNonQuery();
//弹出消息提示删除成功
MessageBox.Show("删除成功!");
//调用查询全部的方法,刷新DataGridView控件中的数据
QueryAll();
}
catch (Exception err)
{
MessageBox.Show("错误信息:"+err.Message+"\n错误来源:"+err.Source);
}
}
3.3.3修改
private void btn_updata_Click_1(object sender, EventArgs e)
{
/*修改数据*/
int id = int.Parse(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());//获取选中的行的id
//向upDateform窗口传参代表要修改数据
upDateform up = new upDateform(id);
up.Show();
}
private void button1_Click_1(object sender, EventArgs e)
{
//状态为修改数据
string sql = "UPDATE userlist ('U_ID' ,'U_NAME' ,'U_SEX' ,'U_PWD' ,'U_EMAIL')VALUES ('{0}','{1}','{2}','{3}','{4}')";
sql = string.Format(sql, txtid.Text, txtname.Text, txtsex.Text, txtpwd.Text, txtmail.Text);
try
{
MySqlCommand cmd = new MySqlCommand(sql, conn);//命令执行器
cmd.ExecuteNonQuery();//执行sql命令
MessageBox.Show("更新成功!");
}
catch (Exception err)
{
MessageBox.Show(err.Message);
throw;
}
conn.Close();
}
3.3.4添加
private void btn_insert_Click(object sender, EventArgs e)
{
/*添加数据*/
//不向upDateform窗口传参代表添加数据
upDateform up = new upDateform();
up.Show();
}
private void button1_Click_1(object sender, EventArgs e)
{
//状态未新增数据
string sql = "INSERT INTO userlist (`U_ID` ,`U_NAME` ,`U_SEX` ,`U_PWD` ,`U_EMAIL`)VALUES ('{0}','{1}','{2}','{3}','{4}')";
sql = string.Format(sql, txtid.Text, txtname.Text, txtsex.Text, txtpwd.Text, txtmail.Text);
try
{
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.ExecuteNonQuery();
MessageBox.Show("更新成功!");
}
catch (Exception err)
{
MessageBox.Show(err.Message);
throw;
}
conn.Close();
}
四、结果展示
1.查看所有数据
2.查找
3.删除
删除后
4.添加
添加后
5.修改
选中小齐,将性别改为女
修改后
五、代码仓库
https://github.com/zljdgit/WinMySql.git
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_50925472/article/details/125004473