[英]Could not find installable ISAM (in 'throw ex;' line)
我正在嘗試上傳csv文件並將數據保存到本地數據庫中。 但是當我運行我的代碼時,它說“找不到可安裝的ISAM”。 我不確定如何解決。 我已經研究過,大多數錯誤都與它們有關。 但是我的代碼用不同的代碼突出顯示。
我如何解決它?
我的代碼:
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;
}
錯誤顯示為“ throw ex;”。
您的問題是連接字符串。 當您有一個異常處理程序時,突出顯示了另一段代碼,該異常處理程序在嘗試使用該連接並重新拋出該異常時捕獲了該異常。
在連接字符串中,將csv
更改為text
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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.