Retours du chariot Breaking MySQL BulkLoader

J'import de données de Visual FoxPro dans MySQL et j'ai du mal à lire un type de colonne Memo . Le problème est que dans la colonne Mémo des users de FoxPro, les inputs peuvent être enregistrées.

Je charge la table FoxPro dans un file CSV, et le problème apparaît, les returns de chariot sont comptés comme de nouvelles lignes qui dérangent le process d'import lorsque j'utilise MySqlBulkLoader . Le file CSV ressemble à ceci;

 Contact1 Contact2 description associated with Contact2 description associated with Contact2 Contact3 

La question ici est qu'il y a des returns de chariot dans la description de Contact2. Existe-t-il une façon de bouger le file CSV afin qu'il puisse ignorer les returns de chariot, mais les maintenir dans la database MySQL? Est-ce que je pourrais faire un DataTable C # DataTable et les supprimer? Par conséquent, ne pas être confondu en prenant les returns de voiture mais en les maintenant dans le domaine MySQL des choses.

Ce sont les methods que j'utilise actuellement;

  private void Contacts() { using (OleDbConnection dbfCon = new OleDbConnection(dbfConstr)) { dbfCon.Open(); var dbfCmd = new OleDbCommand(@"SELECT ct_id, ct_cmpid, ct_empid, ct_pplid, ct_cntid, ct_pplnm, ct_date, ct_time, ct_type, ct_doneby FROM contacts", dbfCon); var dTable = new DataTable(); var dataAdapter = new OleDbDataAdapter(dbfCmd); dataAdapter.Fill(dTable); WriteDateTimeToCSV(dTable, "contacts"); } } 

Charger datatables de CSV vers MySQL

  public void WriteDateTimeToCSV(DataTable dataTable, ssortingng mySqlTable) { var sb = new SsortingngBuilder(); IEnumerable<ssortingng> columnNames = dataTable.Columns.Cast<DataColumn>(). Select(column => column.ColumnName); sb.AppendLine(ssortingng.Join(",", columnNames)); Type _datetype = typeof(DateTime); foreach (DataRow row in dataTable.Rows) { IEnumerable<ssortingng> fields = row.ItemArray.Select((field, index) => (dataTable.Columns[index].DataType == _datetype) ? ((DateTime)field).ToSsortingng("yyyy-MM-dd") : (field.ToSsortingng().Contains(",") ? "\"" + field.ToSsortingng() + "\"" : field.ToSsortingng())); sb.AppendLine(ssortingng.Join(",", fields)); } File.WriteAllText(@"C:\Users\DanD\Desktop\test.csv", sb.ToSsortingng()); WriteToMySQL(mySqlTable); } 

WriteToMySQL

  public void WriteToMySQL(ssortingng mySqlTable) { MySqlConnection mysqlCon = new MySqlConnection(mysqlConstr); mysqlCon.Open(); ssortingng tempCsvFileSpec = @"C:\Users\DanD\Desktop\test.csv"; var msbl = new MySqlBulkLoader(mysqlCon); msbl.TableName = "sdcdatabase." + mySqlTable; msbl.NumberOfLinesToSkip = 1; msbl.FileName = tempCsvFileSpec; msbl.FieldTerminator = ","; msbl.FieldQuotationCharacter = '"'; msbl.Load(); File.Delete(tempCsvFileSpec); } 

EDIT: c'est le CSV ouvert dans Notepad ++

 32,2199,9,26,0,Dan ,1996-08-13,16:56:12 ,4,Dan ,"OTT 30/08/96. CRLF Test 1 CRLF Test 2 CRLF Test 3 CRLF 33,3146,9,512,0,Dan ,1996-08-20,10:51:14 ,1,Dan ,Call again re Malvern CRLF 

C'est ce que j'ai essayé jusqu'ici de replace le CR;

  if (row[10].ToSsortingng().Contains("CR")) { row[10].ToSsortingng().Replace("CR", "!"); } 

Mais malheureusement, le CR n'est pas remplacé