Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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# 使用Microsoft Jet OLEDB对CSV的列限制_C#_.net_Asp.net_Csv_Oledb - Fatal编程技术网

C# 使用Microsoft Jet OLEDB对CSV的列限制

C# 使用Microsoft Jet OLEDB对CSV的列限制,c#,.net,asp.net,csv,oledb,C#,.net,Asp.net,Csv,Oledb,我正在从包含大约350列的CSV导入数据。这个CSV导入是固定的,我绝对不能控制它 如果我试图在Excel2003中打开CSV,由于列限制为255(IV),它只能部分加载 当我使用OleDb和Microsoft.Jet.OleDb.4.0将CSV加载到数据集中时,它也只显示255列。更糟糕的是,当试图访问这255列中的某些列的数据时,它显示了不正确的数据,并且不一致地分割了值 如果我在Excel中打开CSV,让它截断数据并重新保存,我的导入工作正常 我的问题是,是否有其他人在Jet.OLEDB提

我正在从包含大约350列的CSV导入数据。这个CSV导入是固定的,我绝对不能控制它

如果我试图在Excel2003中打开CSV,由于列限制为255(IV),它只能部分加载

当我使用OleDb和Microsoft.Jet.OleDb.4.0将CSV加载到数据集中时,它也只显示255列。更糟糕的是,当试图访问这255列中的某些列的数据时,它显示了不正确的数据,并且不一致地分割了值

如果我在Excel中打开CSV,让它截断数据并重新保存,我的导入工作正常

我的问题是,是否有其他人在Jet.OLEDB提供程序中遇到此限制。如果是,是否有解决问题的方法?如果没有,是否有其他解决方案可以加载如此大的CSV


注意:这不是一次性的任务,我需要为最终用户提供一个浏览/上传按钮,在他们需要时执行此导入。

我们已经成功地使用了它。

我建议以面向对象的方式进行。尝试使用文件帮助程序库。它允许您为文件中的每一行创建一个对象表示。然后可以将此对象持久化到数据库。

schema.ini
文件与CSV文件放在同一文件夹中。有关完整语法,请参阅。

您可以浏览此代码, 在项目中使用并添加引用。并使用下面的代码

FileStream stream = File.Open(strFileName, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
excelReader.Close();
return result.Tables[0];