《C#程序设计》第四次作业:MySQL数据库及C#操作MySQL数据库
来源:互联网 发布:oracle修改数据库字段 编辑:程序博客网 时间:2024/05/20 12:46
《C#程序设计》第四次作业:MySQL数据库及C#操作MySQL数据库
【目的】
1.掌握MySQL数据库的使用方法。
2.掌握C#操作MySQL数据库的方法。
3.了解C#操作其他数据库(Access,MS SQL Server等)的方法。
【目标】
目标1:MySQL数据库的基本操作,包括MySQL的安装、创建数据库、数据表、增删改查操作(80分)。
目标2:C#操作MySQL数据库,包括基本步骤和具体的编码实现(90分)。
目标3:C#编程实现MySQL数据库的多表操作(100分)。
【方法】
1. 遇到问题,想办法解决问题。有智慧=找原因+想办法。充分利用百度、Google进行搜索。
2. 先达成初步目标,再逐步深入、凝练、总结。
【作业要求】
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.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说创建的表格与互评成绩,最终得到每次作业中学生成绩的汇总。
【心得体会】
丁老师跟我说数据的噪声,对我触动比较大,以前对这方面简直可以说是0了解,通过这次作业对这方面已经有了不少的认识,由于个人水平还不到,对于数据的剔除,只能做删除工作,无法校正学生姓名方面的错误,例如 “钟籼豆”和“钟秈豆”这种错误数据,判断语句实在不知道怎么写,可能能用相似度来做?还是用某人没有成绩,而剩余数据里有相似数据,然后强行揉合在一起?这玩意得以后学学。
using System;using System.Collections.Generic;using System.Data;using System.Data.OleDb;using System.Linq;using System.Text;using System.Threading.Tasks;using MySql.Data.MySqlClient;namespace MultiTableOperate{ class Program { public DataTable table1 = new DataTable(); public MySqlConnection myconn = new MySqlConnection(); public DataSet ds = null; static void Main(string[] args) { Program a = new Program(); // 实例化 String path = "F:\\Sam\\素材\\c#\\Grade_FirstExercise.xls"; a.ExcelToDs(path); // 加载Excel a.ConnectToMySql(); // 连接MySql a.insert(); // 插入数据 a.updata(); // 剔除错误数据 } private void updata() { MySqlCommand udata = new MySqlCommand(); udata.Connection = myconn; string sql = "create table tmp2 as select max(id) as col1 from tmp group by num; delete from tmp where id not in(select col1 from tmp2); drop table tmp2;"; // 由于MySql不支持单语句同时执行同一表的select和update操作,只能新建一个相同结构、相同内容的临时表tmp2。 // 剔除同一个人输入多个数据的错误,判断理由是,以该学生的最后一次数据更新为准。 udata.CommandText = sql; udata.ExecuteNonQuery(); sql = "create table tmp2 as select max(num) as col1 from tmp group by name; delete from tmp where num not in(select col1 from tmp2); drop table tmp2;"; // 剔除多个人对同一人互评的错误数据,判断理由是,学号后面的人评论前一人,如果学号较前的人评论较后的人,视为错误数据。 udata.CommandText = sql; udata.ExecuteNonQuery(); sql = "update table1 inner join tmp set table1.mark=tmp.mark where table1.name=tmp.name;"; // tmp表记录的学生姓名、成绩和table1表的学生姓名、学号关联起来。 udata.CommandText = sql; udata.ExecuteNonQuery(); sql = "insert into table1(name,mark) select tmp.name,tmp.mark from tmp where tmp.name not in (select table1.name from table1);"; // 存在剩余数据,存入table1表 udata.CommandText = sql; udata.ExecuteNonQuery(); sql = "drop table tmp;"; // 删除tmp表 udata.CommandText = sql; udata.ExecuteNonQuery(); } private void insert() { MySqlCommand a = new MySqlCommand(); a.Connection = myconn; string sql = "delete from table1;"; // 清空表记录 a.CommandText = sql; a.ExecuteNonQuery(); a.CommandText = "create table tmp(id int auto_increment primary key not null,name char(20),mark int,num char(20));"; // 创建记录学生学号、成绩的临时表tmp a.ExecuteNonQuery(); foreach (DataRow dr in table1.Rows) { String id = "20121167"; String id1 = string.Copy(dr["学号"].ToString()); id += id1.Substring(id1.Length - 4, 4); // 修正excel里错误的学号信息 try { sql = "insert into table1 values('" + id + "','" + dr["姓名"] + "','1',' ')"; // 往table1表插入学号和姓名信息,成绩为空,数据库已设置学号唯一,剔除重复数据。 a.CommandText = sql; a.ExecuteNonQuery(); } catch (Exception e) { } sql = "insert into tmp values(null,'" + dr["互评学生姓名"] + "','" + dr["互评学生分数"] + "','" + id + "')"; // 往tmp表插入学生姓名、成绩、以及评论该学生的学号,学号用于剔除多个人对同一人互评的错误数据。 a.CommandText = sql; a.ExecuteNonQuery(); } } private void ConnectToMySql() { string str = "data source=localhost;database=student;user id=root;password=\"\""; // 连接MySql数据库,库名为student myconn.ConnectionString = str; myconn.Open(); } public DataSet ExcelToDs(string path) { string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + @path + ";" + "Extended Properties=Excel 12.0;"; // 使用OleDb驱动连接Excel OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); string strExcel = ""; OleDbDataAdapter myCommand = null; strExcel = "select*from[sheet1$]"; myCommand = new OleDbDataAdapter(strExcel, strConn); ds = new DataSet(); myCommand.Fill(table1); return ds; } }}
0 0
- 《C#程序设计》第四次作业:MySQL数据库及C#操作MySQL数据库
- 第四次作业: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#操作MySQL数据库
- c#第四次作业 c#操作MySQL数据库
- C#第四次作业:C#连接MySQL数据库
- C#第四次作业 数据库操作
- sql server数据库及c#操作sql server数据库(第四次C#作业)
- 【c#第四次作业】c#操作SQLServer数据库
- 《C#程序设计》第四次作业
- 作业四:MYSQL数据库及C#操作MYSQL数据库——Winform程序
- C# 操作mysql数据库
- C#操作mysql数据库
- C# 操作mySql数据库
- 如何简单方便地上Google
- Linux下配置smb,实现映射
- 自定义UITableViewHeaderFooterView
- 第二题
- iOS开发之面对对象的三大特征小小总结
- 《C#程序设计》第四次作业:MySQL数据库及C#操作MySQL数据库
- 轻松搞定面试中的链表题目
- 转码
- 【IOS测试类】NSNotificationCenter钩子
- TimeDate
- MyEclipse 部署报错,抛空指针异常的解决办法
- Linux目录结构
- 最大子矩阵和(poj1050 动规)
- gcc warning: no newline at end of file的原因