您的位置:首页 > 数据库 > MySQL

第四次C#作业-MySQL数据库及C#操作MySQL数据库

2015-05-15 23:54 661 查看
作业链接:http://user.qzone.qq.com/303727350/blog/1430966678

信管1123 林少鑫 201211671312

完成目标:多表操作

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 System.IO;
using System.Data.OleDb;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;

namespace mysqlTest
{
public partial class Form1 : Form
{
public Form1()
{

InitializeComponent();
}

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{

}

//打开文件
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openfile = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
if (Path.GetExtension(openFileDialog.FileName) == ".txt")
{
txtToMysql(openFileDialog.FileName);
}
else
{
DataSet da = ExcelToDS(openFileDialog.FileName);
}
}
}

//从txt读取内容并显示,同时存到数据库
public void txtToMysql(string path)
{
//mysql数据库打开
string mycoon = "server=localhost;Database=test;Uid=root;Pwd=;Charset=utf8;";
MySqlConnection con = new MySqlConnection(mycoon);
con.Open();

//打开txt
StreamReader sr = new StreamReader(path,Encoding.Default);
string s;
while ((s = sr.ReadLine()) != null)
{
string[] str = s.Split(new char[]{' '});
txtToMysql(con,str[1],str[2],str[3],str[4]);
}

//建表(初始化执行
//MySqlCommand cmd = con.CreateCommand();
//cmd.CommandText = "CREATE TABLE student(id int(10) unsigned NOT NULL AUTO_INCREMENT key,num varchar(20) NOT NULL,name varchar(20) NOT NULL,classes varchar(20) NOT NULL,sex varchar(5) NOT NULL)CHARSET=utf8; ";
//cmd.ExecuteNonQuery();

con.Close();
}

//从EXCEL表读取内容并显示,同时存到数据库
public DataSet ExcelToDS(string path)
{
//mysql数据库打开
string mycoon = "server=localhost;Database=test;Uid=root;Pwd=;Charset=utf8;";
MySqlConnection con = new MySqlConnection(mycoon);
con.Open();

//excel数据库打开
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + @path + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
//
string strExcel = "";
strExcel = "select * from [sheet1$]";
//
OleDbDataAdapter myCommand = null;
myCommand = new OleDbDataAdapter(strExcel, strConn);
//
DataSet ds = null;
DataTable table1 = new DataTable();
ds = new DataSet();
//填充
myCommand.Fill(table1);
dataGridView1.DataSource = table1;
conn.Close();

string name = null, group = null, num = null, website = null ;
int ifNum = 0, ifName = 0, ifGroup = 0, ifWebsite = 0 ;
foreach(DataRow row in table1.Rows)
{
ifNum = ifName = ifGroup = ifWebsite = 0;
foreach(DataColumn column in table1.Columns)
{
if (column.ColumnName == "学号")
{
num = row[column].ToString();
ifNum = 1;
}
if (column.ColumnName == "姓名")
{
name = row[column].ToString();
ifName=1;
}
if (column.ColumnName == "组别")
{
group = row[column].ToString();
ifGroup = 1;
}
if(column.ColumnName == "作业网址")
{
website = row[column].ToString();
ifWebsite = 1;
}
}
if (ifNum==1 && ifName == 1 && ifGroup == 1 && ifWebsite == 1)
{
saveToMysql(con, num, name, group, website);
}
}
//建表(初始化执行
//MySqlCommand cmd = con.CreateCommand();
//cmd.CommandText = "CREATE TABLE submit (id int(10) unsigned NOT NULL AUTO_INCREMENT key,num varchar(20) NOT NULL,name varchar(20) NOT NULL,groups varchar(20) NOT NULL,website varchar(120) NOT NULL)CHARSET=utf8; ";
//cmd.ExecuteNonQuery();
//mysql数据库关闭
con.Close();
return ds;
}

private static void saveToMysql(MySqlConnection con, string num, string name, string groups, string website)
{
try
{
MySqlCommand cmd;
cmd = con.CreateCommand();
//插入数据
cmd.CommandText = "INSERT INTO submit(num,name,groups,website)VALUES(@num,@name,@groups,@website)";
cmd.Parameters.AddWithValue("@num",num);
cmd.Parameters.AddWithValue("@name", name);
cmd.Parameters.AddWithValue("@groups",groups);
cmd.Parameters.AddWithValue("@website",website);
cmd.ExecuteNonQuery();
}
catch (Exception)
{
MessageBox.Show("保存到mysql数据库失败!");
}
}

private static void txtToMysql(MySqlConnection con, string num, string name, string classes, string sex)
{
try
{
MySqlCommand cmd;
cmd = con.CreateCommand();
//插入数据
cmd.CommandText = "INSERT INTO student(num,name,classes,sex)VALUES(@num,@name,@classes,@sex)";
cmd.Parameters.AddWithValue("@num", num);
cmd.Parameters.AddWithValue("@name", name);
cmd.Parameters.AddWithValue("@classes", classes);
cmd.Parameters.AddWithValue("@sex", sex);
cmd.ExecuteNonQuery();
}
catch (Exception)
{
MessageBox.Show("保存到mysql数据库失败!");
}
}

private void button2_Click(object sender, EventArgs e)
{
string mycoon = "server=localhost;Database=test;Uid=root;Pwd=;Charset=utf8;";
MySqlConnection con = new MySqlConnection(mycoon);
con.Open();
MySqlCommand cmd = con.CreateCommand();
cmd.CommandText = "select name from student where name not in(select name from submit)";
MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
adap.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
con.Close();
}

private void button3_Click(object sender, EventArgs e)
{
string mycoon = "server=localhost;Database=test;Uid=root;Pwd=;Charset=utf8;";
MySqlConnection con = new MySqlConnection(mycoon);
con.Open();
MySqlCommand cmd = con.CreateCommand();
cmd.CommandText = "select * from student";
MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
adap.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
con.Close();
}

private void button4_Click(object sender, EventArgs e)
{
string mycoon = "server=localhost;Database=test;Uid=root;Pwd=;Charset=utf8;";
MySqlConnection con = new MySqlConnection(mycoon);
con.Open();
MySqlCommand cmd = con.CreateCommand();
cmd.CommandText = "insert into submit(num,name,groups,website)values('201111671125','王康安','无','无');";
cmd.ExecuteNonQuery();
con.Close();
}
}
}






在这次作业中,主要发现MysqlCommand这个不能重复使用,每次使用sql语句都需要重新定义,另外遇到的小问题是两个查询记录的操作,通过不断寻找资料最终也得以解决,最大的感受还是,熟能生巧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: