2017-06-01 20 views
0

ローカルデータベースに保存されたcsvファイルとデータをアップロードしようとしています。しかし、私は私のコードを実行すると、「インストール可能なISAMを見つけることができませんでした」と述べました。私はそれを修正する方法がわかりません。私は研究しており、ほとんどのエラーは関連しています。しかし、私は別のコードで強調表示されています。インストール可能なISAMが見つかりませんでした( 'throw ex;'行にあります)

どうすれば修正できますか?

マイコード:

 const string CSV_CONNECTIONSTRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"{0}\";Extended Properties=\"csv;HDR=YES;FMT=Delimited\""; 


     string csvPath = Server.MapPath("~/Files1/"); 
     string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); 
     FileUpload1.SaveAs(Path.Combine(csvPath, fileName)); 
     var AllFiles = new DirectoryInfo(csvPath).GetFiles("*csv"); 
     string File_Name = string.Empty; 


     string ConString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 

     for (int i = 0; i < AllFiles.Length; i++) 
     { 
      try 
      { 
       File_Name = AllFiles[i].Name; 
       DataTable dt = new DataTable(); 
       using (OleDbConnection con = new OleDbConnection(string.Format(CSV_CONNECTIONSTRING, csvPath))) 
       { 
        using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Mcsv]", con)) 
        { 
         da.Fill(dt); 
        } 
       } 
       using (SqlBulkCopy bulkCopy = new SqlBulkCopy(ConString)) 
       { 
        bulkCopy.ColumnMappings.Add(0, "medicine_id"); 
        bulkCopy.ColumnMappings.Add(1, "category_id"); 
        bulkCopy.ColumnMappings.Add(2, "subcategory_id"); 
        bulkCopy.DestinationTableName = "medicine"; 
        bulkCopy.BatchSize = dt.Rows.Count; 
        bulkCopy.WriteToServer(dt); 
        bulkCopy.Close(); 
       } 
      } 
      catch (System.Exception ex) 
      { 
       throw ex; 
      } 

であることが示さエラー 'スローEX;'

+0

私はまだそれを得るいけないado.net –

+0

を使用していないのcsvパーサがたくさんあります。.. – user8090359

答えて

0

問題は接続文字列にあります。接続を使用して再スローしたときにExceptionを捕捉したExceptionハンドラがあるので、別のコードが強調表示されます。これは、インストール可能なISAMエラーを見つけることができませんでした修正する必要がありますcsv

const string CSV_CONNECTIONSTRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"{0}\";Extended Properties=\"text;HDR=YES;FMT=Delimited\""; 

textに接続文字列で

は、変更します。

次に、Mcsv.txtが見つからないというエラーが表示されます。 SELECT文で、[Mcsv]を読み込みたいファイル名に変更します。

using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + File_Name + "]", con)) 
+0

Mcsvがファイルです。私は以前もmcsv.txtの問題を抱えていて、接続文字列のテキストをcsvに変更しました。さて、私はcsvファイルと同じ内容の.txt形式の別のファイルを作成しましたが、私はそれを読み込もうとしましたが、エラーはまだファイルが見つからないことを示しています。 – user8090359

+0

ああ待ってください!私は正確なコードをコピーしてくれました^^ Thanks @James xD – user8090359

関連する問題