前言:
最近做了一个导入数据的功能,需求大概是这样的,有张Excel表格,将里面的数据插入到mysql已经建好的表里面,而且字段要一一对应,之前我们用的是SqlServer数据库,实现这个批量插入的工作就很简单了,我们可以用SqlBulkCopy批量更新数据,但是在Mysql的ADO操作对象中并没有这个对象,难道要去拼接Insert语句么?小编找到了这样一个有用的对象—— MySqlBulkLoader,是先将DATATable编程CSV文件, 在用MySqlBulkLoader导入MySql中,这样的操作很简单,下面是我的实现。
代码实现:
逻辑层:
<span style="font-family:KaiTi_GB2312;font-size:18px;"> #region ImportQuestionFile() 导入Excel模板题--周洲--2016年3月11日20:42:53
/// <summary>
/// 导入Excel模板题--周洲--2016年3月11日20:42:53
/// </summary>
/// <param name="filePathName"></param>
/// <param name="strPaperId"></param>
/// <returns></returns>
public Dictionary<int, DataTable> ImportQuestionFile(string filePathName, string strPaperId)
{
//完整文件路径
string strFilePath = _savePath1 + filePathName;
//添加默认列(时间戳,是否删除等)
Dictionary<string, string> defaultField = new Dictionary<string, string>();
//defaultField.Add("CourseID", strPaperId);
defaultField.Add("TimeSpan", DateTime.Now.ToString());
//调用底层的方法
Dictionary<int, DataTable> ta = new Dictionary<int, DataTable>();
ExcelImportManager excelImportManager = new ExcelImportManager();
ta = excelImportManager.ImportExcel(s