ODBC中找不到MySQL文件或目录



我正在编写一个程序,该程序通过MySQL处理数据转换,并处理大文件。

我早些时候提出了一个关于我遇到的另一个问题的问题,当我尝试别人的答案时,我得到了以下错误

[MySQL][ODBC 5.3(a) Driver][mysqld-5.5.5-10.1.9-MariaDB]File 'C:xamppmysqldataingram' not found (Errcode: 2 "No such file or directory")

我确信目录是存在的,当我将代码更改为其原始状态时,它可以完美地工作。

那里发生了什么事?

这段代码给了我问题

Cmd.CommandText = String.Format("LOAD DATA INFILE ""{0}"" IGNORE INTO TABLE libros_nueva FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '""' ESCAPED BY '""' LINES TERMINATED BY 'rn';", filepath)
 Cmd.Execute()

任何帮助都将不胜感激!

给定错误消息的显著部分:

找不到文件"C:\examplep\mysql\data\ingram\'"(错误代码:2"没有这样的文件或目录"(

我敢肯定,当需要完整的路径和文件名时,您只传递了一个路径。它回显的路径中肯定没有文件名。


你能给我解释一下[MySqlBulkLoader]吗

另一种导入方式是使用MySql.Data.MySqlClient命名空间中的MySqlBulkLoader

    ' columns in the order they appear in the CSV file:
    Dim cols As String() = {"Name", "Descr", "`Group`", "ValueA",
                        "Bird", "Fish", "zDate", "Color", "Active"}
    Dim csvFile As String = "C:TempmysqlImport.csv"
    Dim rows As Int32
    Using dbcon As New MySqlConnection(MySQLConnStr)
        Dim bulk = New MySqlBulkLoader(dbcon)
        bulk.TableName = "importer"    
        bulk.FieldTerminator = ","      ' this is a CSV
        bulk.LineTerminator = "rn"    ' == CR/LF
        bulk.FileName = csvFile         ' full file path name to CSV 
        bulk.NumberOfLinesToSkip = 0    ' has a header?
        bulk.Columns.Clear()
        For Each s In cols
            bulk.Columns.Add(s)         ' tell MySQL the order
        Next
        rows = bulk.Load()              ' Make it so.
    End Using

导入100k行的时间:3619、2719和2987毫秒。考虑到您的最后一个问题,还有一个可能感兴趣的LoadAsync方法。

如果在插入之前需要进行数据转换,CSVHelper可以提供一种加载记录的简单方法,这样您就可以执行任何需要执行的操作,然后使用普通的SQL插入来更新数据库。


这个答案的一部分显示了使用CSVHelper以50k的批量导入Access,这非常快。

相关内容

  • 没有找到相关文章

最新更新