我有一个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();
答案 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
中使用mysql批量插入直接插入到db BULK INSERT in MYSQL
使用下面给出的函数从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;
}
}