找不到可安装的ISAM(在' throw ex;'行)

时间:2017-06-01 03:02:01

标签: c# asp.net .net visual-studio-2015

我尝试上传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;
            }

错误显示在&#39; throw ex;&#39;

1 个答案:

答案 0 :(得分:0)

您的问题在于连接字符串。当你有一个异常处理程序时,会突出显示另一段代码,该处理程序在尝试使用连接并重新抛出它时捕获了异常。

在连接字符串中,将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))