【发布时间】:2015-04-21 07:05:37
【问题描述】:
我正在将CSV 读入DataTable。每当csv 中没有给出列名时,它就会以 F1、F2、F3 的形式出现......我已经处理了这个问题并且应用程序运行良好,直到客户给了我另一个相同格式的 csv 和它失败了。我为客户的csv 调试了我的应用程序,发现未命名的列与 .NoName,.NoName1,.NoName2 相同......
如何使列对两个文件都是唯一的。
我已阅读以下文件
public static DataTable ImportCsvFile(string filename)
{
DataTable dtExcelData = new DataTable();
FileInfo file = new FileInfo(filename);
using (OleDbConnection con =
new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" +
file.DirectoryName + "\";Extended Properties='text;HDR=Yes;FMT=Delimited(,)';"))
{
using (OleDbCommand cmd = new OleDbCommand(string.Format
("SELECT * FROM [{0}]", file.Name), con))
{
con.Open();
using (OleDbDataAdapter adp = new OleDbDataAdapter(cmd))
{
adp.Fill(dtExcelData);
}
}
}
return dtExcelData;
}
谢谢
【问题讨论】:
-
但是您提供的代码与列名无关,无论列名是什么,它都应该返回一个DataTable。请提供与您的问题相关的代码。
-
这是将数据提取到 DataTable 中的唯一代码,我不确定是什么更改了列名。
-
列名的更改无关紧要。重要的是您如何在代码中处理它。您写道:
it is coming as F1, F2,F3........ I have handled that。代码中的这个地方,你处理它的地方,这是回答你问题的相关代码。 -
我已经在保存 csv 数据的数据库中创建了表。第一次运行应用程序并进行调试时,我得到了 F1、F2、F3.... 我以为它总是一样的,直到几个小时前。
标签: c# asp.net csv oledb oledbconnection