admin管理员组

文章数量:1794759

vs 2022连接MySQL数据库

vs 2022连接MySQL数据库

程序功能

1、请设计一个项目连接到自己的MySQL数据库,数据库包含至少三张表; 2、使用dataGridView控件显示表中的数据; 3、实现基本crud操作;


准备

vs2022

完整代码 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 LinkSQL { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string connString; MySqlCommand comm = new MySqlCommand(); MySqlConnection conn; private void button1_Click(object sender, EventArgs e) { connString = "server=localhost; database=test; uid=root; pwd=q1298516531;Character Set=utf8;"; conn = new MySqlConnection(connString); comm.Connection = conn; conn.Open(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void button5_Click(object sender, EventArgs e) { try { string sql = "select * from score where "; int n = 0; if (textBox1.Text != "") { sql += label1.Text + " = " + textBox1.Text; n++; } if (textBox2.Text != "") { if (n == 0) sql += " " + label2.Text + " = " + textBox2.Text; else sql += " and " + label2.Text + " = " + textBox2.Text; } if (textBox4.Text != "") { if (n == 0) sql += " " + label4.Text + " = " + textBox4.Text; else sql += " and " + label4.Text + " = " + textBox4.Text; } sql += ";"; MySqlDataAdapter da = new MySqlDataAdapter(sql, connString); DataSet ds = new DataSet(); da.Fill(ds, "score"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "score"; } catch (Exception ex) { MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void button2_Click(object sender, EventArgs e) { try { string sql = "insert into score values("+textBox1.Text+","+textBox2.Text+","+textBox4.Text+");"; MySqlDataAdapter da = new MySqlDataAdapter(sql, connString); DataSet ds = new DataSet(); da.Fill(ds, "score"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "score"; } catch (Exception ex) { MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void button3_Click_1(object sender, EventArgs e) { try { string sql = "delete from score where " ; int n = 0; if (textBox1.Text != "") { sql += label1.Text + " = " + textBox1.Text; n++; } if (textBox2.Text != "") { if (n == 0) sql += " " + label2.Text + " = " + textBox2.Text; else sql += " and " + label2.Text + " = " + textBox2.Text; } if (textBox4.Text != "") { if (n == 0) sql += " " + label4.Text + " = " + textBox4.Text; else sql += " and " + label4.Text + " = " + textBox4.Text; } sql += ";"; MySqlDataAdapter da = new MySqlDataAdapter(sql, connString); DataSet ds = new DataSet(); da.Fill(ds, "score"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "score"; } catch (Exception ex) { MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } private void button4_Click(object sender, EventArgs e) { try { int n = 0; string sql = "update score set " + label4.Text + " = " + textBox4.Text + " where s_id = " + textBox1.Text + " and c_id=" + textBox4.Text + ";"; MySqlDataAdapter da = new MySqlDataAdapter(sql, connString); DataSet ds = new DataSet(); da.Fill(ds, "score"); dataGridView1.DataSource = ds; dataGridView1.DataMember = "score"; } catch (Exception ex) { MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } } } 运行结果

未连接时点击其他按钮弹出窗口

可单独查询某一条件或多个条件 增加一条数据,datagridview无显示,但数据库中增加上了 。删除相同情况。

提示:修改功能有问题未解决,点击修改之后数据库中内容未变。


解决方案:

如果vs版本是2017或者2019可以从MySQL官网下载驱动绑定到datagridview控件上,但是由于我的vs版本为2022,下载驱动会出现以下问题 然后采用文章开头的方法。此时数据与datagridview未绑定,控件里的数据需要通过代码显示出来

仓库地址

本文标签: 数据库mySQL