繁体   English   中英

mscorlib.dll中发生类型为'System.IO.IOException'的未处理异常目录名称无效

[英]An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll The directory name is invalid

我正在尝试将CS​​V文件导入SQL Server数据库。 但是当我选择文件时,它在var AllFiles = new DirectoryInfo(CSVpath).GetFiles() ; 并显示错误消息:

mscorlib.dll中发生类型为'System.IO.IOException'的未处理异常。目录名称无效。

(请注意,“目录名称无效。”已从荷兰语“ De mapnaam is ongeldig”翻译而来。)

     string server = "LOCALHOST";
    string database = "klantbestand";
    string SQLServerConnectionString = String.Format("Data Source={0};Initial Catalog={1};Integrated Security=true", server, database);


    string CSVpath = txtfilePath.Text; // CSV file Path
    string CSVFileConnectionString = String.Format(CSVpath);

    var AllFiles = new DirectoryInfo(CSVpath).GetFiles() ;
    string File_Name = string.Empty;

    foreach (var file in AllFiles)
    {
        try
        {
            DataTable dt = new DataTable();
            using (OleDbConnection con = new OleDbConnection(CSVFileConnectionString))
            {
                con.Open();
                var csvQuery = string.Format("select * from [{0}]", file.Name);
                using (OleDbDataAdapter da = new OleDbDataAdapter(csvQuery, con))
                {
                    da.Fill(dt);
                }
            }

            using (SqlBulkCopy bulkCopy = new SqlBulkCopy(SQLServerConnectionString))
            {
                bulkCopy.ColumnMappings.Add(0, "Clientnr");
                bulkCopy.ColumnMappings.Add(1, "contact");
                bulkCopy.ColumnMappings.Add(2, "company");
                bulkCopy.ColumnMappings.Add(3, "address");
                bulkCopy.ColumnMappings.Add(4, "zipcode");
                bulkCopy.ColumnMappings.Add(5, "phone");
                bulkCopy.ColumnMappings.Add(6, "mobile");
                bulkCopy.ColumnMappings.Add(7, "email");
                bulkCopy.ColumnMappings.Add(8, "taxnumber");
                bulkCopy.ColumnMappings.Add(9, "BIC");
                bulkCopy.ColumnMappings.Add(10, "Bank");
                bulkCopy.ColumnMappings.Add(11, "SendMethod");
                bulkCopy.ColumnMappings.Add(12, "Active");
                bulkCopy.ColumnMappings.Add(13, "Notes");
                bulkCopy.ColumnMappings.Add(14, "PaymentMethod");
                bulkCopy.ColumnMappings.Add(15, "Mandate");
                bulkCopy.ColumnMappings.Add(16, "MandatDate");
                bulkCopy.ColumnMappings.Add(17, "CollectionType");
                bulkCopy.ColumnMappings.Add(18, "Country");
                bulkCopy.ColumnMappings.Add(19, "EmailIntro");
                bulkCopy.ColumnMappings.Add(20, "PaymentPeriod");
                bulkCopy.ColumnMappings.Add(21, "Reference");

                bulkCopy.DestinationTableName = "GegevensCSV";
                bulkCopy.BatchSize = 0;
                bulkCopy.WriteToServer(dt);
                bulkCopy.Close();
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
    }
}

private void btnbrowse_Click(object sender, EventArgs e)
{
    OpenFileDialog filedialog = new OpenFileDialog();
    filedialog.Title = "kies csv file";
    filedialog.Filter = "csv Files|*.csv";
    filedialog.InitialDirectory = @"c:\";

    if(filedialog.ShowDialog()== DialogResult.OK)
    {
        txtfilePath.Text = filedialog.FileName;
    }

}

我很确定在这一行抛出了异常

var AllFiles = new DirectoryInfo(CSVpath).GetFiles() ;

将其包裹在try catch语句周围总是一件好事。 但是,正如异常消息所述,要么路径不正确,所以它不存在,要么语法错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM