C#实现MySQL的连接和一些简单操作

目录

连接数据库

添加控件

用 DataGridView 无代码来显示一些表格信息

代码连接  

测试连接数据库 

显示数据 

添加 

删除 

修改 

退出 

所有代码 

结果展示 

 gitee的地址


连接数据库

首先创建了项目之后就可以先连接MySQL数据库 ,点击视图里的服务器资源管理器

依次填上自己数据库的信息就可以连上了 ,我的连上了之后就自动添加了一些有关的引用。

添加控件

要添加一个DataGridView 来显示表的有关信息,加几个Button来进行一些操作

用 DataGridView 无代码来显示一些表格信息

点击添加项目数据源 ,然后一直下一步,按要求填上自己数据库的有关内容就连接上了

代码连接  

测试连接数据库 

 其中创建数据库连接对象要根据自己的数据库进行修改

string M_str_sqlcon = "server=localhost;user id=root;password=1750173201;database=sys";                                                                                              //创建数据库连接对象
			conn = new MySqlConnection(M_str_sqlcon);
			try
			{
				//打开数据库连接
				conn.Open();
				MessageBox.Show("数据库已经连接了!");
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.Message);
			}

显示数据 

string sql = "select * from course";
			mda = new MySqlDataAdapter(sql, conn);
			ds = new DataSet();
			mda.Fill(ds, "course");
			//显示数据
			dataGridView1.DataSource = ds.Tables["course"];
			conn.Close();

添加代码 

if (mda == null || ds == null)
			{
				MessageBox.Show("请先导入数据");
				return;
			}
			try
			{
				string msg = "确实要添加此条数据吗?";
				if (1 == (int)MessageBox.Show(msg, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
				{
					MySqlCommandBuilder builder = new MySqlCommandBuilder(mda);
					mda.Update(ds, "course");
					MessageBox.Show("添加成功", "提示");
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.ToString(), "错误信息");
			}

		}

删除代码

int count = 0;
			try
			{
				
				
				//for循环,dataGridView1.SelectedRows.Count为鼠标选中行的数目,一次for循环删除一行数据
				for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
				{
					//获得i行的编号
					int id = Convert.ToInt32(dataGridView1.SelectedRows[i].Cells[0].Value);
					//编写数据库删除代码,这里还用到了动态变量,用于改变每次id值
					string dataToDo3 = $"delete from student where id = {id}";
					MySqlCommand
										//创建MySqlCommand类用于SQL语句的执行
										cmd = new MySqlCommand(dataToDo3, conn);
					//定义x接收返回值SQL语句返回值,为0则为执行失败
					int x = cmd.ExecuteNonQuery();
					//执行判断
					if (x == 0)
					{
						MessageBox.Show("删除失败");
					}
					//若成功则计数值+1
					count = count + 1;
				}
				//若计数值等于选中行的数目,代表成功完成所有行的删除
				if (count == dataGridView1.SelectedRows.Count)
				{
					MessageBox.Show("删除成功");
				}

			}
			catch (Exception ex)
			{

				MessageBox.Show(ex.ToString());
			}
			finally
			{
				//这里是刷新界面
				button2.PerformClick();
			
				
			}



		}

修改代码

if (mda == null || ds == null)
			{
				MessageBox.Show("请先导入数据");
				return;
			}
			try
			{
				string msg = "确实要修改吗?";
				if (1 == (int)MessageBox.Show(msg, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
				{
					MySqlCommandBuilder builder = new MySqlCommandBuilder(mda); //命令生成器。
																				//适配器会自动更新用户在表上的操作到数据库中
					mda.Update(ds, "course");
					MessageBox.Show("修改成功", "提示");
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.ToString(), "错误信息");
			}

		}

退出代码 

Application.Exit();

所有代码 

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 连接数据库
{

	public partial class Form1 : Form
	{
		MySqlConnection conn; //连接数据库对象
		MySqlDataAdapter mda; //适配器变量
		DataSet ds;  //临时数据集

		public Form1()
		{
			InitializeComponent();
		}

		private void Form1_Load(object sender, EventArgs e)
		{


		}

		private void button1_Click(object sender, EventArgs e)
		{
			string M_str_sqlcon = "server=localhost;user id=root;password=1750173201;database=sys";                                                                                              //创建数据库连接对象
			conn = new MySqlConnection(M_str_sqlcon);
			try
			{
				//打开数据库连接
				conn.Open();
				MessageBox.Show("数据库已经连接了!");
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.Message);
			}

		}

		private void sysDataSet1BindingSource_CurrentChanged(object sender, EventArgs e)
		{

		}

		private void button2_Click(object sender, EventArgs e)
		{
			string sql = "select * from course";
			mda = new MySqlDataAdapter(sql, conn);
			ds = new DataSet();
			mda.Fill(ds, "course");
			//显示数据
			dataGridView1.DataSource = ds.Tables["course"];
			conn.Close();

		}

		private void button5_Click(object sender, EventArgs e)
		{

			int count = 0;
			try
			{
				
				
				//for循环,dataGridView1.SelectedRows.Count为鼠标选中行的数目,一次for循环删除一行数据
				for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
				{
					//获得i行的编号
					int id = Convert.ToInt32(dataGridView1.SelectedRows[i].Cells[0].Value);
					//编写数据库删除代码,这里还用到了动态变量,用于改变每次id值
					string dataToDo3 = $"delete from student where id = {id}";
					MySqlCommand
										//创建MySqlCommand类用于SQL语句的执行
										cmd = new MySqlCommand(dataToDo3, conn);
					//定义x接收返回值SQL语句返回值,为0则为执行失败
					int x = cmd.ExecuteNonQuery();
					//执行判断
					if (x == 0)
					{
						MessageBox.Show("删除失败");
					}
					//若成功则计数值+1
					count = count + 1;
				}
				//若计数值等于选中行的数目,代表成功完成所有行的删除
				if (count == dataGridView1.SelectedRows.Count)
				{
					MessageBox.Show("删除成功");
				}

			}
			catch (Exception ex)
			{

				MessageBox.Show(ex.ToString());
			}
			finally
			{
				//这里是刷新界面
				button2.PerformClick();
			
				
			}



		}

		private void button4_Click(object sender, EventArgs e)
		{
			if (mda == null || ds == null)
			{
				MessageBox.Show("请先导入数据");
				return;
			}
			try
			{
				string msg = "确实要修改吗?";
				if (1 == (int)MessageBox.Show(msg, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
				{
					MySqlCommandBuilder builder = new MySqlCommandBuilder(mda); //命令生成器。
																				//适配器会自动更新用户在表上的操作到数据库中
					mda.Update(ds, "course");
					MessageBox.Show("修改成功", "提示");
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.ToString(), "错误信息");
			}

		}

		private void button3_Click(object sender, EventArgs e)
		{
			if (mda == null || ds == null)
			{
				MessageBox.Show("请先导入数据");
				return;
			}
			try
			{
				string msg = "确实要添加此条数据吗?";
				if (1 == (int)MessageBox.Show(msg, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation))
				{
					MySqlCommandBuilder builder = new MySqlCommandBuilder(mda);
					mda.Update(ds, "course");
					MessageBox.Show("添加成功", "提示");
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.ToString(), "错误信息");
			}

		}

		private void button6_Click(object sender, EventArgs e)
		{
			Application.Exit();
		}
	}
}

结果展示 

 点击测试连接后

 

点击 显示数据后就能在DataGridView中看到选择的表格

 

 点击添加后就可以看到表格的信息的改变(删除和修改类似我就不在展示了),点击退出就退出程序了。

总结  

(这是我在vs2017上运行的结果,在不同的版本上运行可能会有差别) 现在数据库已经是生活中很重要的一部分,连接数据库来进行数据库的有关操作已经成为编程中很重要的一环。这次的博客我只是进行了简单的连接数据库和一些增加,删除和修改的操作,而且这些操作还都不是很完善,如果要进行比较精确的操作还是要进行进一步的研究和修改。这次简单的操作是为了以后更完善的操作。

  gitee的地址

https://gitee.com/zhang-tian_yu/connect-my-sql.git

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值