使用OleDB导入CSV文件 - 字符串数据类型?

时间:2011-04-21 17:43:10

标签: c# .net csv oledb

我正在编写一个C#.net Web应用程序,用户将上传要处理的CSV文件。这些CSV文件包含许多数据类型,我遇到了一些问题。有一个20位数的收据编号字段以科学计数法导入(9.1234563E + 18而不是91234563000000000000),并且任何前导零都会被删除。前导零也会丢弃在另一个4位数的商店编号字段中。

我已经阅读了有关创建Schema.ini文件来定义数据类型的信息,但是每个文件都有不同的文件名,这意味着我必须以编程方式生成新的Schema文件,并且由于多个用户可能正在使用同时应用,它有点规定这个选项。

有人有任何建议吗?

2 个答案:

答案 0 :(得分:0)

此CSV文件是否在Excel中创建?如果是,请确保用户将列设置为正确的数据类型。之前我遇到过类似的问题,但这是因为用户将日期字段设置为不同的类型 - 所以不要像20100408那样回复,我会得到像24782 :-)

否则,尝试在每个字段中读取具有直接文本....然后自己处理转换

答案 1 :(得分:0)

听起来你必须编写一些手动读取文件的自定义代码并自己拆分字段。您可以一次轻松读取一行,并使用String.Split方法获取各个字段。当然,假设CSV文件将始终采用相同的格式,因此无论文件来自何处,您都可以以相同的方式处理每个字段。这样,您就可以按照自己的方式处理每个字段。