我想将Excel中的数据插入到我的Mysql数据库中。到目前为止,我已经设法只向数据库插入一列。我试过循环,但似乎无法做到这一点。
我是ASP.NET C#的新手。我可以在PHP中轻松完成这项工作,但我在使用ASP.NET时遇到了困难。
任何人都可以帮我将所有列插入数据库表。
这是我的代码:
protected void add_Click(object sender, EventArgs e)
{
if (importfile.HasFile)
{
string ex_userid = "";
string ex_student_id = "";
string ex_contact_name = "";
string ex_contact_number = "";
string ex_group_name = "";
ex_group_name = groupname.Text;
ex_userid = (String)(Session["id"]);
string path = string.Concat((Server.MapPath("~/temp/" + importfile.FileName)));
importfile.PostedFile.SaveAs(path);
OleDbConnection oleConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.15.0;Data Source=" + path + ";Extended Properties=Excel 8.0;");
oleConn.Open();
try
{
OleDbCommand olecmd = new OleDbCommand("select*from [Sheet1$]", oleConn);
DataSet ds = new DataSet();
OleDbDataAdapter adapr = new OleDbDataAdapter(olecmd);
adapr.Fill(ds);
DataTable dt = ds.Tables[0];
OleDbDataReader oleReader = olecmd.ExecuteReader();
while (oleReader.Read())
{
ex_student_id = oleReader[0].ToString();
ex_contact_name = oleReader[1].ToString();
ex_contact_number = oleReader[2].ToString();
}
string sql = "INSERT INTO contacts (user_id, student_id, contact_name, contact_number, group_name) VALUES (@a, @b, @c, @d, @e)";
using (MySqlConnection con = new MySqlConnection("Server=localhost;Database=bu-idesk;Uid=root;Pwd=;"))
{
con.Open();
foreach (DataRow r in dt.Rows)
{
MySqlCommand cmd = con.CreateCommand();
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@a", ex_userid);
cmd.Parameters.AddWithValue("@b", r["Student_id"]);
cmd.Parameters.AddWithValue("@c", r["Student_name"]);
cmd.Parameters.AddWithValue("@d", r["Student_number"]);
cmd.Parameters.AddWithValue("@e", ex_group_name);
cmd.ExecuteNonQuery();
}
oleConn.Close();
con.Close();
}
}
catch (MySqlException)
{
}
}
}