本篇的内容主要是,如何使用Vs设计窗体应用,同时连接mysql数据库,进行基础的增删改查操作。本人Vs版本为2019版。
目录
一、程序窗体界面展示
如下图所示,其中使用了textBox、label、comboBox和dataGridView几种控件。其dataGridView主要是用于展示我们的数据信息的控件。
同时要说明,此案例并不全面,文本框控制只是在某种限定下可以操作,但是如果使用sql语句操作,则没有任何问题。
二、Vs使用mysql数据的相关说明
1.创建数据连接
Step.1
Step.2
Step.3
Step.4
Step.5
Step.6
Step.7
如果没有mysql选项
下载驱动:(这里下载第二个就可以了)
1.mysql-connector-odbc-8.0.20-winx64.msi
mysql odbc驱动
2.
mysql-for-visualstudio-1.2.9.msi VisualStudio连接MySQL工具
3.
mysql-connector-net-8.0.20.msimysql数据库.net开发驱动
Step.8
Step.9
Step.10
Step.11
Step.12
安装完成后,不用设置任何东西,但是保证你用过mysql,并且建立过数据库连接。然后直接打开VS。
Step.13
2、添加mysql的依赖包
Step.14
Step.15
三、功能说明
1、连接数据库
这里在连接的时候,个人娱乐,会默认查出welcome表。
【代码段】
private void button1_Click(object sender, EventArgs e)
{
string connstr = @"database = school; Password = 20001017; User ID = root; server = localhost; pooling = false; charset = utf8";
//在外层定义了
conn = new MySqlConnection(connstr);
conn.Open();
MessageBox.Show("连接成功");
//查询welcom表
string sql = "select* from welcome";
adapter = new MySqlDataAdapter(sql, conn);
//数据集、本地微型数据库可以存储多张表。
set = new DataSet();
//从数据库的stuinfo表中取出数据
adapter.Fill(set, "welcome");
//将取出的数据做为dataGridView1的数据源
dataGridView1.DataSource = set;
dataGridView1.DataMember = "welcome";
}
2、查询
(1)查询所有内容
未选择表时,无法查询。
选择员工表,点击查询
(2)按照工号查询
输入工号,然后查询
(3)SQL语句查询
【工号和sql都有语句时】
【代码】
private void button2_Click(object sender, EventArgs e)
{
if(conn==null)
{
MessageBox.Show("请建立连接!");
return;
}
if (comboBox1.Text == "")
{
MessageBox.Show("请选择一张表");
return;
}
if(textBox1.Text == "" && textBox7.Text == "")
{
string sql = "select* from "+comboBox1.Text;
adapter = new MySqlDataAdapter(sql, conn);
//数据集、本地微型数据库可以存储多张表。
set = new DataSet();
//从数据库的stuinfo表中取出数据
adapter.Fill(set, "welcome");
//将取出的数据做为dataGridView1的数据源
dataGridView1.DataSource = set;
dataGridView1.DataMember = "welcome";
}else if(textBox1.Text != "" && textBox7.Text != "")
{
MessageBox.Show("请选择按照主键值查询或者sql命令查询");
return;
}else if(textBox1.Text != "" && textBox7.Text == "")
{
string sql = "select * from " + comboBox1.Text + " where "+label1.Text+" = "+'"'+textBox1.Text+'"';
Console.WriteLine(sql);
adapter = new MySqlDataAdapter(sql, conn);
//数据集、本地微型数据库可以存储多张表。
set = new DataSet();
//从数据库的stuinfo表中取出数据
adapter.Fill(set, "welcome");
//将取出的数据做为dataGridView1的数据源
dataGridView1.DataSource = set;
dataGridView1.DataMember = "welcome";
}else if(textBox1.Text == "" && textBox7.Text != "")
{
string sql = textBox7.Text;
Console.WriteLine(sql);
adapter = new MySqlDataAdapter(sql, conn);
//数据集、本地微型数据库可以存储多张表。
set = new DataSet();
//从数据库的stuinfo表中取出数据
adapter.Fill(set, "welcome");
//将取出的数据做为dataGridView1的数据源
dataGridView1.DataSource = set;
dataGridView1.DataMember = "welcome";
}
}
3、增加
(1) 未选择增加方式时
(2)文本框增加
其中,重置可以清除文本框,点击查询即可查询所有。
(3)sql增加
“1208“是中途增加了一条,故多了一条。
【代码】
private void button3_Click(object sender, EventArgs e)
{
int result = 0;
if (conn == null)
{
MessageBox.Show("请建立连接!");
return;
}
try
{
if (textBox1.Text != "" && textBox7.Text == "")
{
string sql = "insert into " + comboBox1.Text + "(" + label1.Text + "," + label2.Text + "," + label3.Text + "," + label4.Text + "," + label5.Text + "," + label6.Text + ")" + " values(" + '"' + textBox1.Text + '"' + "," + '"' + textBox2.Text + '"' + "," + '"' + textBox3.Text + '"' + "," + '"' + textBox4.Text + '"' + "," + '"' + textBox5.Text + '"' + "," + '"' + textBox6.Text + '"' + ")";
//数据集、本地微型数据库可以存储多张表。
MySqlCommand cmd = new MySqlCommand(sql, conn);
result = cmd.ExecuteNonQuery();
}
else if (textBox1.Text == "" && textBox7.Text != "")
{
string sql = textBox7.Text;
//数据集、本地微型数据库可以存储多张表。
MySqlCommand cmd = new MySqlCommand(sql, conn);
result = cmd.ExecuteNonQuery();
}
else if (textBox1.Text == "" && textBox7.Text == "")
{
MessageBox.Show("请选择按照主键值删除或者sql命令增加!");
return;
}
}
catch(Exception)
{
MessageBox.Show("操作失败,请检查操作或数据表");
}
if (result == 0)
{
MessageBox.Show("操作失败");
}
else
{
MessageBox.Show("增加成功!");
}
}
4、删除
(1)文本框以主键值删除
(2)sql删除
【代码】
private void button4_Click(object sender, EventArgs e)
{
int result=0;
if (conn == null)
{
MessageBox.Show("请建立连接!");
return;
}
if (textBox1.Text != "" && textBox7.Text == "")
{
string sql = "delete from " + comboBox1.Text + " where " + label1.Text + "=" + '"' + textBox1.Text + '"';
//数据集、本地微型数据库可以存储多张表。
MySqlCommand cmd = new MySqlCommand(sql, conn);
result = cmd.ExecuteNonQuery();
}else if(textBox1.Text == "" && textBox7.Text != "")
{
string sql = textBox7.Text;
//数据集、本地微型数据库可以存储多张表。
MySqlCommand cmd = new MySqlCommand(sql, conn);
result = cmd.ExecuteNonQuery();
}else if(textBox1.Text == "" && textBox7.Text == "")
{
MessageBox.Show("请选择按照主键值删除或者sql命令删除!");
return;
}
if (result == 0)
{
MessageBox.Show("操作失败");
}
else
{
MessageBox.Show("删除成功!");
}
}
5、修改
(1)文本框修改
(2)Sql修改
这里失误忘记设置条件了!
【代码】
private void button5_Click(object sender, EventArgs e)
{
if (conn == null)
{
MessageBox.Show("请建立连接!");
return;
}
int result = 0;
if (conn == null)
{
MessageBox.Show("请建立连接!");
return;
}
try
{
if (textBox1.Text != "" && textBox7.Text == "")
{
string sql = "update " + comboBox1.Text + " set " +
label2.Text + " = " + '"' + textBox2.Text + '"' + "," +
label3.Text + " = " + '"' + textBox3.Text + '"' + "," +
label4.Text + " = " + '"' + textBox4.Text + '"' + "," +
label5.Text + " = " + '"' + textBox5.Text + '"' + "," +
label6.Text + " = " + '"' + textBox6.Text + '"' + " " +
" where " + label1.Text + " = " + '"' + textBox1.Text + '"';
//数据集、本地微型数据库可以存储多张表。
MySqlCommand cmd = new MySqlCommand(sql, conn);
result = cmd.ExecuteNonQuery();
}
else if (textBox1.Text == "" && textBox7.Text != "")
{
string sql = textBox7.Text;
//数据集、本地微型数据库可以存储多张表。
MySqlCommand cmd = new MySqlCommand(sql, conn);
result = cmd.ExecuteNonQuery();
}
else if (textBox1.Text == "" && textBox7.Text == "")
{
MessageBox.Show("请选择按照文本框删除或者sql命令修改!");
return;
}
}
catch(Exception)
{
MessageBox.Show("操作失败,请检查操作或数据表");
}
if (result == 0)
{
MessageBox.Show("操作失败");
}
else
{
MessageBox.Show("更新成功!");
}
}
6、切换其他表
【图书】
【销售表】
总结
本篇主要是关于使用c#,通过窗体来控制使用mysql实现增删改查,此案例并不完善,但可提供思路。
本篇gitee:https://gitee.com/with-zero/windows--well-c--sql--vs.git
With_Zero 2022.05.27