我正在尝试将CSV文件导入到SQL服务器数据库中。但是,当我选择该文件时,它会在var AllFiles = new DirectoryInfo(CSVpath).GetFiles() ;处中断,并发出错误消息:
“System.IO.IOException”类型的未处理异常发生在mscorlib.dll中,目录名无效。
(请注意“目录名无效”。已翻译自荷兰语"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;
}
}发布于 2016-09-23 10:04:50
我很确定异常在这一行中抛出。
var AllFiles = new DirectoryInfo(CSVpath).GetFiles() ;将其封装在thing语句中总是一件好事。但正如异常消息所述,要么路径不正确,要么不存在路径,要么语法错误。
https://stackoverflow.com/questions/39657891
复制相似问题