将数据从Excel文件传输到MySQL表

时间:2014-05-23 08:44:29

标签: c# mysql

我有一个Excel 2003电子表格,我需要导入MySQL。我有一个名为dev_products的表,有两个字段; product_id和product_description。 Excel文件具有完全相同的列结构 - 但我不知道如何传输数据(通过代码 - 因为我将不得不再次执行此操作)。

我能够连接到该文件....但是就我而言......我真的需要一些帮助。

谢谢 - 一如既往。

    const string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + strExcelFilenameandLocation + "; Extended Properties=Excel 8.0;";
    OleDbConnection xlConn = new OleDbConnection(connectionString);
    xlConn.Open();

    string strQuery = "??????????";

    var con = new MySqlConnection(ClsVariables.StrDb);
    con.Open();
    MySqlCommand command = new MySqlCommand(strQuery, con);
    command.ExecuteNonQuery();
    con.Close();
    xlConn.Close();

2 个答案:

答案 0 :(得分:1)

使用sql命令直接导入的简单方法

另存为文本(CSV)并在mysql命令行客户端中使用LOAD DATA INFILE LOCAL来加载文件......

http://dev.mysql.com/doc/refman/5.0/en/load-data.html

-

参考:http://forums.mysql.com/read.php?32,216343,216344#msg-216344

答案 1 :(得分:1)

将excel文件保存在csv

  1. 使用mysql批量插入直接插入到db BULK INSERT in MYSQL

  2. 使用下面给出的函数从csv中读取数据 该函数将返回DataTable中的数据 提取数据并创建要在db

    中插入的mysql查询
    using System.IO;
    using System.Windows.Forms;
    using System.Data;
    public class readCSV
    {
    public DataTable getDataTable()
    {
        DataTable dTable = new DataTable();
        try
        {
            using (StreamReader readFile = new StreamReader(this.filename))
            {
                string line;
                string[] row;
                int rowcount = 0;
                DataRow dRow;
    
                while ((line = readFile.ReadLine()) != null)
                {
                    row = line.Split(',');
                    dRow = dTable.NewRow();
    
                    for (int i = 0; i < row.Length; i++)
                    {
                        if (rowcount == 0)
                        {
                            dTable.Columns.Add(row[i]);
                        }
                        else
                        {
                            dRow[dTable.Columns[i]] = row[i];
                        }
                    }
    
                    if (rowcount != 0)
                    {
                        dTable.Rows.Add(dRow);
                    }
                    rowcount++;
                }
            }
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
        }
    
        return dTable;
    }
    }