使用C#/ADO将csv文件读取到asp.net页面上的数据集中,但带有逗号并用双引号括起来的字段仍然是“C”;“拆分”;
我有以下代码来读取csv文件:使用C#/ADO将csv文件读取到asp.net页面上的数据集中,但带有逗号并用双引号括起来的字段仍然是“C”;“拆分”;,c#,asp.net,csv,C#,Asp.net,Csv,我有以下代码来读取csv文件: //Create connection string to Excel string excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ConfigurationManager.AppSettings["UploadDir"].ToString() + ";Extended Properties=\"Text;HDR=YES;FMT=Delimited\""; /
//Create connection string to Excel
string excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ConfigurationManager.AppSettings["UploadDir"].ToString() + ";Extended Properties=\"Text;HDR=YES;FMT=Delimited\"";
//Create Connection to Excel
OleDbConnection excelConnection = new OleDbConnection(excelConnectionString);
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand("Select * from [updatefile.csv]", excelConnection);
adapter.Fill(dsUpdate);
我的csv包含以下内容:
prde,cost,ourestimate,floors,psize,commdate
Mixed-Use Development,$5 000 000,"$5,000,000",5,,2014
但是,当上述代码到达adapter.Fill(dsUpdate)时,生成的数据集将显示以下列和值:
string excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ConfigurationManager.AppSettings["UploadDir"].ToString() + ";Extended Properties=\"Text;HDR=YES;FMT=CSVDelimited\"";
string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ConfigurationManager.AppSettings["UploadDir"].ToString() + ";Extended Properties=\"Text;HDR=YES;FMT=Delimited\"";
我不确定我还可能做错了什么。据我所知,根据我所看到的,这些都是正确的
提前谢谢 在执行string.split之前,在Regex.Replace中运行该行,以将模式“$…”中的任何逗号替换为空格,甚至是空字符串,因为您可能希望将其转换为十进制值。确保它在内部识别引号以取消分隔符这不是要使用的确切模式,但是你明白了吗?我实际上并没有使用string.split(我在帖子的任何地方都没有提到),因为这并不关心逗号是否用双引号括起来。正如我在问题中提到的,我将csv读入一个数据集;然而,由于你的方法没有给你想要的结果,我建议另一种方法。啊,那就道歉吧。如果我被允许走那条路,我会记住的。嘿,不需要道歉,老兄。我没有尝试过使用您的方法导入CSV,但我猜您对OleDbDataAdapter.Fill的内部实现无能为力,而这似乎是导致问题的原因。因此,我会尝试一种不同的方法,即使这意味着更多的工作。