C# Excel 导入mysql数据库

28 篇文章 1 订阅
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Addmysql
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        String key = "";
        String value = "";
        DataTable _dt = null;
        private void button1_Click(object sender, EventArgs e)
        {
            _dt = new DataTable();
            string err = "";
            ExcelToTable tab = new ExcelToTable();
            try
            {
                //初始化一个OpenFileDialog类 
                OpenFileDialog fileDialog = new OpenFileDialog();

                //判断用户是否正确的选择了文件 
                if (fileDialog.ShowDialog() == DialogResult.OK)
                {
                    //获取用户选择文件的后缀名 
                    string extension = Path.GetExtension(fileDialog.FileName);
                    //声明允许的后缀名 
                    string[] str = new string[] { ".xls", ".xlsx" };
                    if (!str.Contains(extension))
                    {
                        MessageBox.Show("不是Excel!");
                    }
                    else
                    {
                        System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
                        watch.Start();//开始计时
                        this.textBox1.Text = fileDialog.FileName;
                        DataSet dt = new DataSet();
                        dt = tab.ExcelToDS(fileDialog.FileName, out err);
                        _dt = dt.Tables[0];
                        int a = _dt.Rows.Count;
                        int columnNum = 0;
                        columnNum = _dt.Columns.Count;
                        if (columnNum > 0)
                        {
                            this.label1.Text = "总:" + a + "条 " + columnNum + "列";
                            //for (int i = 0; i < columnNum; i++)
                            //{
                            //    if (String.IsNullOrEmpty(key))
                            //    {
                            //        key = dt.Tables[0].Columns[i].ColumnName;
                            //        value = getrow(dt.Tables[0], key);
                            //    }
                            //    else
                            //    {
                            //        string _key = dt.Tables[0].Columns[i].ColumnName;
                            //        string _value = getrow(dt.Tables[0], _key);
                            //        if (String.IsNullOrEmpty(_value))
                            //        {
                            //            _value = "0";
                            //        }
                            //        key = key + "," + _key;
                            //        value = value + "," + _value;
                            //    }
                            //    //dataGridView1.Columns.Add(num, num);
                            //}
                        }

                        //this.dataGridView1.DataSource = null;
                        this.dataGridView1.DataSource = _dt;
                        watch.Stop();//停止计时
                        TimeSpan ts2 = watch.Elapsed;
                        this.label3.Text = "  用时:" + ts2.TotalMilliseconds + "毫秒";
                    }
                }
            }
            catch (Exception ex)
            {
                err = err + ex.Message;
            }
            if (!String.IsNullOrEmpty(err))
            {
                MessageBox.Show(err);
            }
        }


        private String getrow(DataTable dt, string Columns)
        {
            String start = "";
            foreach (DataRow dr in dt.Rows)
            {
                start = dr[Columns].ToString(); //语句1
            }
            return start;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            sqlHelp cls2 = new sqlHelp();
            int a = 0;
            try
            {
                string str = this.textBox2.Text;
                String _str = this.textBox3.Text;
                if (string.IsNullOrEmpty(str))
                {
                    MessageBox.Show("请输入数据库链接");
                }
                if (string.IsNullOrEmpty(_str))
                {
                    MessageBox.Show("请输入需要导入的表名称");
                }
                //string query = string.Format("insert into" + _str + "(" + key + ")values(" + value + ")");
                //cls.InsertByDataTable(_dt, str, _str,out a);
                a = cls2.BulkInsert(str, _dt, _str);
                if (a > 0)
                {
                    this.label6.Text = "本次导入:" + a;
                    MessageBox.Show("导入成功!" + "本次导入:" + a);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string M_str_sqlcon = "server=192.168.1.242;port=3307;User Id=root;password=xws8417;Database=axcf";//连接MySQL的字符串
            this.textBox2.Text = M_str_sqlcon;
        }

        private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
        {
            var grid = sender as DataGridView;
            var rowIdx = (e.RowIndex + 1).ToString();

            var centerFormat = new StringFormat()
            {
                // right alignment might actually make more sense for numbers  
                Alignment = StringAlignment.Center,
                LineAlignment = StringAlignment.Center
            };

            var headerBounds = new Rectangle(e.RowBounds.Left, e.RowBounds.Top, grid.RowHeadersWidth, e.RowBounds.Height);
            e.Graphics.DrawString(rowIdx, this.Font, SystemBrushes.ControlText, headerBounds, centerFormat);
        }
    }
}到此结束:下载地址:https://download.csdn.net/download/goodchangyong/10310468

C# 中将 Excel 数据导入MySQL 数据库可以按照以下步骤进行: 1. 引用相关的库:首先,你需要在项目中引用 `MySql.Data` 和 `ExcelDataReader` 库。你可以通过 NuGet 包管理器来安装这些库。 2. 读取 Excel 数据:使用 `ExcelDataReader` 库来读取 Excel 文件中的数据。你需要打开 Excel 文件,选择工作表,并读取相应的数据。 ```csharp // 引用命名空间 using ExcelDataReader; // 打开 Excel 文件 using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read)) { using (var reader = ExcelReaderFactory.CreateReader(stream)) { // 选择工作表 reader.Read(); // 读取数据行 while (reader.Read()) { // 读取单元格数据 var cell1 = reader.GetString(0); var cell2 = reader.GetInt32(1); // 将数据插入到数据库 // ... } } } ``` 3. 连接到 MySQL 数据库:使用 `MySqlConnection` 类来建立与 MySQL 数据库的连接。你需要提供正确的连接字符串来连接到数据库。 ```csharp // 连接字符串 string connectionString = "server=localhost;database=myDatabase;uid=myUsername;pwd=myPassword;"; // 建立数据库连接 using (var connection = new MySqlConnection(connectionString)) { connection.Open(); // 执行插入操作 // ... } ``` 4. 插入数据到 MySQL 数据库:在循环中,将从 Excel 中读取的数据插入到 MySQL 数据库中。 ```csharp // 建立数据库连接 using (var connection = new MySqlConnection(connectionString)) { connection.Open(); // 执行插入操作 using (var command = connection.CreateCommand()) { command.CommandText = "INSERT INTO TableName (Column1, Column2) VALUES (@Value1, @Value2)"; command.Parameters.AddWithValue("@Value1", cell1); command.Parameters.AddWithValue("@Value2", cell2); command.ExecuteNonQuery(); } } ``` 注意:上述代码仅为示例,你需要根据你的实际情况修改连接字符串、数据表名称以及插入的列和值。 这是一个基本的框架,你可以根据你的具体需求和 Excel 数据的结构进行适当的调整。另外,还需要注意异常处理、字段类型转换、数据验证等方面的处理,以确保导入过程的正确性和完整性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值