如果您的 csv 文件和 mysql 表列不匹配,它可能不会插入数据。例如,如果您的 mysql 表有一个带有标识键的主键列,并且通常您不会在 csv 文件中包含此列。
所以在上述情况下,mysqlloader 不会插入数据。要解决此问题,请使用 columns 属性并添加列 mysql 表列名
这是一个示例代码。
public async Task<bool> MySqlBulkLoaderAsync(string csvFilePath)
{
bool result = true;
try
{
using (var conn = new MySqlConnection(_connString + ";AllowLoadLocalInfile=True"))
{
var bl = new MySqlBulkLoader(conn)
{
TableName = "patientdetailstagings",
Timeout = 600,
FieldTerminator = ",",
LineTerminator = "\n",
FieldQuotationCharacter = '"',
FileName = csvFilePath,
NumberOfLinesToSkip = 1
};
bl.Columns.AddRange(new List<string>() {"Column1", "Column2"});
var numberOfInsertedRows = await bl.LoadAsync();
}
System.IO.File.Delete(csvFilePath);
}
catch (Exception ex)
{
result = false;
throw;
}
return result;
}
注意:列映射将根据您在 columns 属性中添加它们的方式完成。以相同的顺序,它将访问 csv 文件中的列值