C#第四次作业:C#连接MySQL数据库
来源:互联网 发布:二级c语言考试系统 编辑:程序博客网 时间:2024/06/04 19:31
作业要求
目标1.MySQL数据库的基本操作,包括如下两个工作:
(1)在MySQL数据库中插入两个文件中的数据(List_Class1.txt, List_Class1_Submit.xls,点击下载)。
(2)利用SQL命令查找所有 出现在“List_Class1”中,未出现在“List_Class1_Submit” 的学生名单,并保存或输出(截图)。
目标2. C#操作MySQL数据库。
(1)连接作业1中建立的数据库中的相关的表(table),显示在DataGridView控件中。
(2)C#语言编程实现数据库的插入、删除、修改某一条或若干条记录。
目标3. 多表操作。
(1)利用文件中提供的第一次作业互评成绩(Grade_FirstExercise.xls),创建一个Table,包括的字段为 学号、姓名、作业次数、此次作业分数(所有字段都推荐用英文命名)。
(2) 结合1说创建的表格与互评成绩,最终得到每次作业中学生成绩的汇总。
目标1:
先将List_Class1.txt的编码方式改为UTF-8,方法:文件---另存为---编码---UTF-8。
然后打开navicat for MySQL,新建一个数据库cs ,字符集也是选择utf-8 。现在开始导入(以导入List_Class1.txt为例)
因为这里是txt文件,所以选择文本文件
选择栏位分隔符为空格
注意这里的第一个数据行要写2
接下来一直点击下一步,直到“开始”,导入成功
List_Class1_Submit.xls 也是同样的导入方法,这里就不多说了,直接截导入成功的图,这里把List_Class1_Submit.xls在数据库存为sheet1,下文的sheet1指的就是如下这张表
利用SQL命令查找所有 出现在“List_Class1”中,未出现在“List_Class1_Submit” 的学生名单,并保存或输出
这里在选中cs数据库,点击查询----新建查询
查询语句及结果
目标2:
因为要用C#连接数据库,所以先下载MySql.Data.dll 和MySql.Web.dll (这个可以去官网下载,也可以直接百度)
然后把它们添加到你的项目的引用里面,方法:解决方案---引用---添加引用---浏览---打开这两个文件的下载路径即可
最后要在代码中添加它们的命名空间:
using MySql.Data.MySqlClient; using System.Data.SqlClient;
Form1.cs[设计] 如下图所示
上代码
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;using MySql.Data.MySqlClient; using System.Data.SqlClient; namespace WindowsFormsApplication9{ public partial class Form1 : Form { //Check按键--选择全部 private void btnCheck_Click(object sender, EventArgs e) { string sqlStr = "select * from sheet1"; //sql语句 sqlResult(sqlStr); //代码重构 } //Select按键--仅查询学号,姓名 private void btnSelect_Click(object sender, EventArgs e) { string selectStr= "select 学号,姓名 from sheet1"; sqlResult(selectStr); //代码重构 } //Add按键--添加纪录 private void btnAdd_Click(object sender, EventArgs e) { string addStr = "INSERT INTO sheet1(学号,姓名,组别,作业网址)VALUES('201211672213','李柳红','1','http://blog.csdn.net/shenmeguia')"; sqlResult(addStr); //因为这里是添加语句,它不会自动显示添加后的数据,所以要把全部的数据查询一遍才再能显示 string sqlStr = "select * from sheet1"; sqlResult(sqlStr); } //Upda按键--修改学号201211672213 private void btnUpdate_Click(object sender, EventArgs e) { string updateStr = "update sheet1 set 学号='2012000000'where 学号='201211672213'"; sqlResult(updateStr); string sqlStr = "select * from sheet1"; sqlResult(sqlStr); } //Delete按键--删除学号为2012000000的记录 private void btnDelete_Click(object sender, EventArgs e) { string deleteStr = "delete from sheet1 where 学号='2012000000'";// sqlResult(deleteStr); string sqlStr = "select * from sheet1"; sqlResult(sqlStr); } //多表操作 private void btnCreateTable_Click(object sender, EventArgs e) { string tableStr = "create table student(Sno varchar(255),Sclass varchar(255),Sname varchar(255),Sscore varchar(255))"; sqlResult(tableStr); string sql = "insert into student(Sno,Sclass,Sname,Sscore) Select sheet1.学号 as Sno,sheet2.班级 as Sclass,sheet1.姓名 as Sname,sheet2.互评学生分数 as Sscore from sheet1,sheet2 where sheet2.学号=sheet1.学号 "; sqlResult(sql); string sqlStr = "select * from student"; sqlResult(sqlStr); } //数据库的连接以及sql语句的操作 private void sqlResult(string sqlStr) { string connectionString = "Host=127.0.0.1;UserName=root;Password=;Database=cs;CharSet=utf8;"; MySqlConnection connection = new MySqlConnection(connectionString); try { MySqlDataAdapter sql_da = new MySqlDataAdapter(sqlStr, connection); DataSet sql_ds = new DataSet(); sql_da.Fill(sql_ds, "sqlTable"); dataGridView1.DataSource = sql_ds.Tables["sqlTable"]; //MessageBox.Show("SQL语句操作成功"); } catch (SqlException ex) { /*MessageBox.Show("SQL语句操作失败");*/ throw ex; } } public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } }}
在做作业的时候,我一直在想,对数据库表格的增、删、查、改、建库建表什么的无非就是SQL语句不同,其他连接数据库的代码、把操作结果显示在dataGridView的代码应该都一样,所以我就想着看能不能这两部分的代码重构,居然可以。所以就提取出
private void sqlResult(string sqlStr)
这个方法,然后各种操作只要变一下sqlStr (也就是各自的sql语句)这个参数就行了。例如查询操作
//Select按键--仅查询学号,姓名 private void btnSelect_Click(object sender, EventArgs e) { string selectStr= "select 学号,姓名 from sheet1"; sqlResult(selectStr); //代码重构 }
运行结果
CheckAll按钮——查询sheet1的所有记录
Select按钮——查询sheet1的学号,姓名
Add按钮——添加记录
Update按钮——更改学号,将学号更新为2012000000
Delete按钮——删除学号为2012000000的记录
目标3:多表操作
先把Grade_FirstExercise.xls 按照目标1的方法导入进来,命名为sheet2。因为sheet1有学号和姓名,sheet2有班级和成绩,要对sheet1和sheet2进行多表操作,再将操作结果添加到新建的Table表里(我这里建的是Student表)。这样就要先创建Student表,然后再插入记录。
代码
//多表操作 private void btnCreateTable_Click(object sender, EventArgs e) { string tableStr = "create table student(Sno varchar(255),Sclass varchar(255),Sname varchar(255),Sscore varchar(255))"; sqlResult(tableStr); //创建Student表 string sql = "insert into student(Sno,Sclass,Sname,Sscore) Select sheet1.学号 as Sno,sheet2.班级 as Sclass,sheet1.姓名 as Sname,sheet2.互评学生分数 as Sscore from sheet1,sheet2 where sheet2.学号=sheet1.学号 "; sqlResult(sql); //进行多表操作并插入记录 string sqlStr = "select * from student"; sqlResult(sqlStr); }运行结果
点击Table按键
这时候打开navicat for MySQL ,发现多了student表
到此这次作业就全部做完了。谢谢观赏
- C#第四次作业:C#连接MySQL数据库
- 【c#第四次作业】c#操作MySQL数据库
- c#第四次作业 c#操作MySQL数据库
- 第四次作业:MySQL数据库及C#操作MySQL数据库
- C#第四次作业 数据库操作
- c#第四次作业
- C#第四次作业
- c#第四次作业
- C#第四次作业
- C#第四次作业
- c#第四次作业
- 《C#程序设计》第四次作业:MySQL数据库及C#操作MySQL数据库
- 第四次C#作业-MySQL数据库及C#操作MySQL数据库
- C#第四次作业:MySQL数据库及C#操作MySQL数据库
- C#第四次作业:MySQL数据库及C#操作MySQL数据库
- C#第四次作业:MYSQL数据库及C#操作MYSQL数据库——Winform程序
- C#第四次作业:MySQL数据库及C#操作MySQL数据库
- 【c#第四次作业】c#操作SQLServer数据库
- Leetcode #11 Container With Most Water
- PHPMailer使用教程(PHPMailer发送邮件实例分析)
- 安卓中CookieRequest的实现
- 观察者模式及Java实现例子
- 熟络的谈笑间,存在着挥之不去的隔膜,嘴上一直笑着,心却一直哭泣,试问苍天,我该如何做!
- C#第四次作业:C#连接MySQL数据库
- Java学习之Iterator(迭代器)的一般用法和详解
- java实现各种排序算法
- setjmp和longjmp goto应用
- OPENCART 2.X 自适应主题模板 ABC-0629
- VMware虚拟机中CentOS/redhat设置固定IP
- 我也曾盼望有一个人,将我好好收藏,妥善安放,免我苦,免我惊,免我四下流离,免我无枝可依
- Live Archive 3902 Network 【持续更新】
- Python 的 time模块