【发布时间】:2016-09-23 19:17:31
【问题描述】:
我正在尝试将 CSV 文件导入 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;
}
}
【问题讨论】:
-
CSVpath是一个有效的目录吗? -
简单的
CSVpath代表无效的目录你不能调试看看里面有什么 -
@AmitKumarGhosh CSVpath 从选择文件的浏览按钮获取目录,在调试中它确实显示文件的目录
-
文件不是目录。
-
我怎样才能让它使用我选择的文件