string pConStr = "datasource=127.0.0.1;username=root;password=shi123;database=test;charset=utf8";
try
{
MySqlConnection pMysqlConnection = new MySqlConnection(pConStr);
pMysqlConnection.Open();
string pCreateTable = "CREATE TABLE `总成绩表` (`学号` int NOT NULL ,`姓名` text NOT NULL ,`语文` int NOT NULL ,`数学` int NOT NULL ,`英语` int NOT NULL ,`总分` int NOT NULL,`平均分` double NOT NULL,PRIMARY KEY(`学号`)); ";
MySqlCommand pMysqlcommnand = new MySqlCommand(pCreateTable, pMysqlConnection);
pMysqlcommnand.ExecuteNonQuery();
string pTS = "ALTER TABLE `总成绩表` ALTER `总分` SET DEFAULT 0,ALTER `平均分` SET DEFAULT 0";
string pInsert = "INSERT INTO `总成绩表`(`学号`,`姓名`,`语文`,`数学`,`英语`)(SELECT * FROM (SELECT `成绩表`.`学号`,`花名册`.`姓名`,`成绩表`.`语文`,`成绩表`.`数学`,`成绩表`.`英语` FROM `花名册` JOIN `成绩表` ON `成绩表`.`学号`=`花名册`.`学号`) AS RNG)";
string pUPDATE = "UPDATE `总成绩表` SET `总分` = `语文`+`数学`+`英语`";
//UPDATE 后面可以不用加where
string pUPDATE2 = "UPDATE `总成绩表` SET `平均分`=(`语文`+`数学`+`英语`)/3";
MySqlCommand pMysqlcommnandinsert1 = new MySqlCommand(pInsert, pMysqlConnection);
MySqlCommand pMysqlcommnandinsert2 = new MySqlCommand(pTS, pMysqlConnection);
MySqlCommand pMysqlcommnandinsert3 = new MySqlCommand(pUPDATE, pMysqlConnection);
MySqlCommand pMysqlcommnandinsert4 = new MySqlCommand(pUPDATE2, pMysqlConnection);
pMysqlcommnandinsert2.ExecuteNonQuery();
pMysqlcommnandinsert1.ExecuteNonQuery();
pMysqlcommnandinsert3.ExecuteNonQuery();
pMysqlcommnandinsert4.ExecuteNonQuery();
//这段代码的作用是将两个已存在的表(两个表中的字段在新建表中都有,且新建的表的字段比两个已知表的字段还要多)复制到一个新建的表中,
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
MySqlConnection pMysqlConnection = new MySqlConnection(pConStr);
pMysqlConnection.Open();
MySqlDataAdapter sda = new MySqlDataAdapter("SELECT * FROM `总成绩表`", pMysqlConnection);
DataSet ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}