如何将不同的表从excel文件保存到mysql数据库

时间:2017-09-20 15:08:34

标签: c# mysql

我有一个代码,可以将excel文件导入并显示到datagridview,我想知道你是否帮助我如何将这些工作表从我的excel文件保存到mysql中的数据库?我的工作表名称是一级评分,二级评分和出勤率,我正在使用c#。无论如何,这是我的代码:

private void btnSaved_Click(object sender, EventArgs e)
        {
            int qtr = 0;
            string att_qtr = "ATTENDANCE";

            MySqlConnection con = new MySqlConnection("Server = DESKTOP-9H7QBOH; Database = sti_spms; UID = root; Password = 1234;");
                try
                {
                    string query = "INSERT INTO tbl_secondsem_grades(STUDENT_NO, NAME, SUBJECT, SECTION, GRADE, INITIAL_GRADE, QTR)" + "Values(@STUDENT_NO, @NAME, @SUBJECT, @SECTION, @GRADE, @INITIAL_GRADE, @QTR)";
                    query += "INSERT INTO tbl_attendance(STUDENT_ID, NAME, SUBJECT, SECTION, TOTAL_ABSENCES)" + "Values(@STUDENT_ID, @NAME, @SUBJECT, @SECTION, @TOTAL_ABSENCES)";
                    MySqlCommand cmd = new MySqlCommand(query, con);
                    DataTable dt = new DataTable();
                    con.Open();
                    for (int i = 0; i < dataGridView1.Rows.Count -1; i++)
                    {

                        if(quarter.Equals("1st QTR"))
                        {
                            qtr = 1;
                        }
                        else if(quarter.Equals("2nd QTR"))
                        {
                            qtr = 2;
                        }
                        else if(quarter.Equals("3rd QTR"))
                        {
                            qtr = 3;
                        }
                        else if(quarter.Equals("4th QTR"))
                        {
                            qtr = 4;
                        }
                        else if (quarter.Equals("ATTENDANCE"))
                        {
                            att_qtr = "ATTENDANCE";
                        }
                        else
                        {
                            MessageBox.Show("Error!");
                        }

                        //int num = Convert.ToInt32(dataGridView1.Rows[i].Cells["STUDENT NO"].Value.ToString());
                        cmd.Parameters.AddWithValue("@STUDENT_NO", dataGridView1.Rows[i].Cells["STUDENT NO"].Value.ToString());
                        cmd.Parameters.AddWithValue("@NAME", dataGridView1.Rows[i].Cells["NAME"].Value.ToString());
                        cmd.Parameters.AddWithValue("@SUBJECT", dataGridView1.Rows[i].Cells["SUBJECT"].Value.ToString());
                        cmd.Parameters.AddWithValue("@SECTION", dataGridView1.Rows[i].Cells["SECTION"].Value.ToString());
                        cmd.Parameters.AddWithValue("@INITIAL_GRADE", dataGridView1.Rows[i].Cells["INITIAL GRADE"].Value.ToString());
                        cmd.Parameters.AddWithValue("@GRADE", dataGridView1.Rows[i].Cells["QG"].Value.ToString());
                        cmd.Parameters.AddWithValue("@QTR", qtr);
                        cmd.Parameters.AddWithValue("@STUDENT_NO", dataGridView1.Rows[i].Cells["STUDENT NO"].Value.ToString());
                        cmd.Parameters.AddWithValue("@NAME", dataGridView1.Rows[i].Cells["NAME"].Value.ToString());
                        cmd.Parameters.AddWithValue("@SUBJECT", dataGridView1.Rows[i].Cells["SUBJECT"].Value.ToString());
                        cmd.Parameters.AddWithValue("@SECTION", dataGridView1.Rows[i].Cells["SECTION"].Value.ToString());
                        cmd.Parameters.AddWithValue("@Total_Absences", dataGridView1.Rows[i].Cells["Total_Absences"].Value.ToString());
                        cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();
                    }

                }
                catch (Exception ex)
                {
                    MessageBox.Show("Data  Sucessfully Saved!");
                }

        }

1 个答案:

答案 0 :(得分:0)

快速部分

...
MySqlCommand cmd = new MySqlCommand(query, con);
DataTable dt = new DataTable();
cmd.Paramters.Add("@STUDENT_NO", MySqlDbType.Int); .. guessing this is an int - otherwise choose type
cmd.Paramters.Add("@NAME", MySqlDbType.String);
... // add rest here
con.Open();
...
for (.. ) {
    ...
    int studentno;
    int.TryParse(dataGridView1.Rows[i].Cells["STUDENT NO"].Value.ToString(), out studentno);
    cmd.Paramters["@STUDENT_NO"].Value = studentno;
    cmd.Paramters["@NAME"].Value = dataGridView1.Rows[i].Cells["NAME"].Value.ToString();
    ...
}