2017-11-27 38 views
1

私はCSVファイルを10行4列から構成しています.CSIレコードをMySQLテーブルに一括アップロードする必要があります。私のコードは行を正常に作成していますが、MySqlテーブルの各セルは、CSVのように元の値の代わりにNULLを表示しています。また、 "Load data local Infile"コマンドを試していましたが、サーバはFilePath.Replace( "\"、 "/")というウィンドウが最も可能性がある場合 は、ここに私のC#のコードMySqlBulkUploaderは、CSVからMySqlにNull値を挿入します。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(); 
    } 
+0

なぜFilePath'変数のフォルダ区切り文字を変更していますか?あなたは 'FilePath'の値をチェックしましたか?ファイルは存在しますか? – bradbury9

+0

はい、最初にファイルが適切なフォルダに保存され、ファイルにアクセスしています。ファイルも物理パスに配置されます。 –

+0

サーバがWindowsの場合、 'FilePath.Replace(" \\ "、"/");'は、存在しないファイルを返します。 – bradbury9

答えて

1

です。存在しないファイルが返されます。

関連する問題