winform excel导入mysql_c#将Excel数据导入到数据库的实现代码
时间: 2023-12-10 20:41:22 浏览: 36
可以使用以下代码来实现将 Excel 数据导入到 MySQL 数据库中:
```csharp
using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace ExcelToMySQL
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 设置 Excel 文件路径和连接字符串
string filePath = textBox1.Text;
string fileExt = System.IO.Path.GetExtension(filePath);
string connString = "";
if (fileExt == ".xls")
{
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'";
}
else if (fileExt == ".xlsx")
{
connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1;'";
}
// 读取 Excel 数据到 DataTable 中
OleDbConnection conn = new OleDbConnection(connString);
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn);
DataTable dt = new DataTable();
da.Fill(dt);
// 将 DataTable 中的数据导入到 MySQL 数据库中
string mysqlConnString = "Server=localhost;Database=test;Uid=root;Pwd=123456;";
MySqlConnection mysqlConn = new MySqlConnection(mysqlConnString);
mysqlConn.Open();
foreach (DataRow row in dt.Rows)
{
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = mysqlConn;
cmd.CommandText = "INSERT INTO mytable (id, name, age) VALUES (@id, @name, @age)";
cmd.Parameters.AddWithValue("@id", row["ID"].ToString());
cmd.Parameters.AddWithValue("@name", row["Name"].ToString());
cmd.Parameters.AddWithValue("@age", row["Age"].ToString());
cmd.ExecuteNonQuery();
}
mysqlConn.Close();
MessageBox.Show("导入成功!");
}
}
}
```
在上面的代码中,需要根据实际情况修改以下变量:
- `filePath`:Excel 文件路径
- `connString`:Excel 连接字符串
- `mysqlConnString`:MySQL 连接字符串
- `da.Fill(dt)`:指定要读取的 Excel 工作表名称(这里是 `Sheet1`)
- `cmd.CommandText`:指定要插入数据的表名和字段名
另外,需要在 WinForm 窗体中添加一个 `TextBox` 控件和一个 `Button` 控件,并将它们分别命名为 `textBox1` 和 `button1`。当用户点击 `button1` 按钮时,会触发 `button1_Click` 方法,从而执行 Excel 数据导入到 MySQL 数据库的操作。