Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 找不到可安装的ISAM(在“throw ex;”行中)_C#_Asp.net_.net_Visual Studio 2015 - Fatal编程技术网

C# 找不到可安装的ISAM(在“throw ex;”行中)

C# 找不到可安装的ISAM(在“throw ex;”行中),c#,asp.net,.net,visual-studio-2015,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=Delimi

我正在尝试上传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更改为文本

这将修复“找不到可安装ISAM”错误

接下来,您可能会得到一个找不到Mcsv.txt的错误。在SELECT语句中,将[Mcsv]更改为要读取的文件名

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

有很多csv解析器不使用ado.neti,但我仍然不明白。Mcsv就是这个文件。我以前也遇到过mcsv.txt问题,我将连接字符串中的文本更改为csv。现在,我创建了另一个.txt格式的文件,其内容与csv文件相同。但是,我尝试读取它,但错误仍然显示它找不到该文件。txtOh,等等!我复制了你的准确代码,它成功了^^谢谢@James xD
using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + File_Name + "]", con))