2

CSV ファイルを MySQL データベースにロードしようとすると、ランタイムが発生します

Fatal error encountered attempting to read the resultset. 

同様の質問が 4 月にここで行われました。返信はありませんでしたが、他の誰かがこれを見たことを願っています。デバッガーからのコマンドは次のとおりです。

"LOAD DATA LOCAL INFILE 'D:\\SANCentral\\Customer Files\\ibm\\70738\\0918\\Switch 
Port.csv' INTO TABLE By_Switch FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\\r\\n' IGNORE 1 LINES"

C# コードは次のとおりです。

string ConnectionString =  String.Format(@"server={0};userid={1};
        password={2};database={3}", server, user, passwd, database);
        MySqlConnection sqlconnect = new MySqlConnection(ConnectionString);
        sqlconnect.Open();
        IEnumerable<FileInfo> files = this.InputFileListView.Items.Cast<FileInfo>();
        string commandstring = String.Format(@"LOAD DATA LOCAL INFILE '{0}' INTO TABLE {1} FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' IGNORE 1 LINES", 
                                                files.FirstOrDefault().ToString(), "By_Switch");
        MySqlCommand cmd = new MySqlCommand(commandstring,sqlconnect);
        cmd.ExecuteNonQuery();

データベースの列名が受信 CSV ファイルの列名と一致することを確認しました。

4

1 に答える 1

2

だから私はそれを理解しました。MySQLWorkbenchを使用して同じloadコマンドを実行しました。MySQLは問題をより説明していました。まず、テーブルの列に間違ったデータ型がありました。次に、行が\ nで終わると言っても、\ r\nで終わる場合は問題です。このファイルには、\ r\nと\nだけが混在しているように見えます。したがって、ファイルをロードする前に、行末を正規化する必要があると思います。最後に、実際のデータ値の一部が欠落しているため、、が含まれる行を取得します。どうしたらいいのかわからない。

于 2012-09-21T21:08:29.393 に答える