Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#/ADO将csv文件读取到asp.net页面上的数据集中,但带有逗号并用双引号括起来的字段仍然是“C”;“拆分”;_C#_Asp.net_Csv - Fatal编程技术网

使用C#/ADO将csv文件读取到asp.net页面上的数据集中,但带有逗号并用双引号括起来的字段仍然是“C”;“拆分”;

使用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\""; /

我有以下代码来读取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 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)时,生成的数据集将显示以下列和值:

  • prde:混合用途开发
  • 费用:5 000 000美元
  • 我们的估计数:5
  • 楼层:0
  • psize:0
  • 通讯日期:5
  • 基本上,它将“$5000.000”分为3列,分别为5、0和0(000被转换为0)

    我还尝试了以下连接字符串,但结果相同:

    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的内部实现无能为力,而这似乎是导致问题的原因。因此,我会尝试一种不同的方法,即使这意味着更多的工作。