2017-06-01 106 views
0

我試圖上傳csv文件並將數據保存到本地數據庫中。但是當我運行我的代碼時,它聲明'找不到可安裝的ISAM'。我不知道如何解決它。我已經研究過,大多數錯誤都與他們有關。但是我的代碼被突出顯示。找不到可安裝的ISAM(在'throw ex;'line)

我該如何解決?

我的代碼:

 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; 
      } 

證明是在錯誤 '扔恩;'

+0

有很多不使用ado.net –

+0

我仍然不明白CSV解析器.. – user8090359

回答

0

你的問題是與連接字符串。不同的代碼片段會突出顯示,因爲您有一個異常處理程序,它在嘗試使用連接並重新拋出它時捕獲了異常。

在連接字符串,更改csvtext

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

這應該可以解決找不到可安裝ISAM錯誤。

接下來,您可能會收到無法找到Mcsv.txt的錯誤。在SELECT語句中,將[Mcsv]更改爲您想要讀取的文件名。

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

MCSV是文件。我以前也有過mcsv.txt問題,我在連接字符串中將文本更改爲csv。現在,我用.txt格式創建了另一個與csv文件相同內容的文件,但是,我嘗試讀取它,但是錯誤仍然顯示它找不到file.txt – user8090359

+0

哦等等!我複製你的確切代碼,它的工作^^謝謝@詹姆斯xD – user8090359

相關問題