【问题标题】:How to load CSV file to MySQL using SourceStream?如何使用 SourceStream 将 CSV 文件加载到 MySQL?
【发布时间】:2022-11-08 18:41:55
【问题描述】:

我正在尝试使用流将 csv 文件加载到 mysql 数据库表中。但是 MySqlBulkLoader 没有识别属性 SourceStream。我对在 MySqlBulkLoader 中使用 SourceStream 有点困惑。

    List<string> data= File.ReadAllLines(@"C:\mycsv.txt").ToList();

    string myConn = "Server=localhost;Database=AAAA;Uid=BBB;Pwd=CCCC";
    MySqlConnection testConn= new MySqlConnection(myConn );
    var stream = new MemoryStream()
    MySqlBulkLoader bulk = new MySqlBulkLoader(testConn)
    {
      CharacterSet = "UTF8",
      FieldQuotationCharacter = '\t',
      LineTerminator = "\r\n",
      NumberOfLinesToSkip = 1,
      TableName = "mytable",
      Local = false,
      SourceStream = stream 
      var writer = new StreamWriter(stream);   

     foreach (var d in data)
        writer.WriteLine(string.Join("\t", d));     

     writer.Flush();
     stream.Position = 0;

   }

    bulk.Load();

错误是:

MySqlBulkLoader' 不包含 'SourceStream' 的定义

感谢您帮助解决此问题。

【问题讨论】:

    标签: c# mysql asp.net-core stream bulkinsert


    【解决方案1】:

    你应该设置Local=true,它会解决这个问题。

    相关文档:MySqlBulkLoader.SourceStream property

    【讨论】:

      【解决方案2】:

      使用下面的代码只需一行代码即可将数据从 S3 存储桶加载到 My SQL

      LOAD DATA FROM S3 's3://db-bucket-name/folder-name/test.csv' INTO TABLE table-name FIELDS TERMINATED BY ',' ENCLOSED BY '"+'"'+"' LINES TERMINATED BY '
      ';
      

      【讨论】:

        猜你喜欢
        • 2023-04-01
        • 2015-06-08
        • 2015-04-07
        • 2017-03-13
        • 2022-01-14
        • 2014-01-19
        • 1970-01-01
        • 1970-01-01
        • 2014-10-07
        相关资源
        最近更新 更多