【问题标题】:MySqlBulkUploader inserts Null value from CSV to MySql c#MySqlBulkUploader 将 Null 值从 CSV 插入到 MySql c#
【发布时间】:2018-05-10 15:05:55
【问题描述】:

我有包含 10 行和 4 列的 CSV 文件。我必须在 MySQL 表中批量上传 csv 记录。我的代码成功创建了行,但 MySql Table 的每个单元格都显示 NULL 而不是 CSV 中的原始值。我也尝试过命令“加载数据本地 Infile”,但结果相同......我必须做什么? 这是我的 C# 代码

public ActionResult Index(HttpPostedFileBase UploadExcel)
    {
        string FilePath = Server.MapPath("~/Uploads/" + UploadExcel.FileName);
        UploadExcel.SaveAs(FilePath);
        FilePath = FilePath.Replace("\\", "/");
        string connectionString = ConfigurationManager.ConnectionStrings["mySqlConnection"].ConnectionString;
        MySqlConnection myConn = new MySqlConnection(connectionString);
        myConn.Open();
        string TableName = "testTable_TEMP";
        var bl = new MySqlBulkLoader(myConn);
        bl.TableName = TableName;
        FilePath = FilePath.Replace("\\", "/");
        bl.FieldTerminator = ",";
        bl.LineTerminator = "\n";
        bl.FileName = FilePath;
        bl.NumberOfLinesToSkip = 1;
        var count = bl.Load();
        myConn.Close();
        return View();
    }

【问题讨论】:

  • 为什么要更改FilePath 变量中的文件夹分隔符?你检查过FilePath 的值吗?文件存在吗?
  • 是的,首先文件保存在适当的文件夹中,然后我正在访问该文件。并且文件也放置在物理路径上。
  • 如果服务器是 Windows,FilePath.Replace("\\", "/"); 很可能会返回一个不存在的文件。
  • 它正在运行。感谢 bradbury9 提供宝贵的解决方案。
  • 很高兴为您提供帮助,并给出问题原因的答案,以便您将其标记为有用。

标签: c# mysql asp.net-mvc csv


【解决方案1】:

如果服务器是 windows 最有可能 FilePath.Replace("\", "/");将返回一个不存在的文件。

【讨论】:

    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 2012-04-25
    相关资源
    最近更新 更多