【问题标题】:How to generically read text files and save into databases without evaluating data type?如何在不评估数据类型的情况下一般读取文本文件并保存到数据库中?
【发布时间】:2011-04-06 02:09:33
【问题描述】:

我需要编写一个 C# 程序来读取任何平面文本文件,并且对于每一行,使用以前保存在配置文件中的 regex 表达式进行解析,该表达式将行分隔为几个字段存储在List 对象中,其中每个元素都是一个字段。然后,让每个字段保存在先前在数据库表中创建的各个字段中,以此类推。

此时,一切都被视为数据是在不受干扰的情况下编排的,就像从文本文件到数据库的管道。但是,我面临的困难是某些字段可以用不同的格式、bool、double 等表示日期/小时。对于这几种情况,我需要修改我的程序并制作某种if-statements,这将最低限度地生成一个处理时间的开销。

问题是要知道 C# 中是否有任何方法或技术,尽管提到了特殊情况,但它允许我将数据记录在数据库中,而无需先前评估以确定数据类型的开销?

谢谢。

【问题讨论】:

  • 你可能想展示一个例子。我不太关注:)
  • 如果您的数据库表是预定义的,那么您就已经知道数据类型了。那么为什么你不能从具有特定数据类型和格式的文件中读取呢?
  • VinayC,你是对的。因此,让我继续我的问题,假设我不仅在 config.file 中定义了 regexp 表达式,而且还定义了创建包含字段和类型的表的 SQL 命令。我真正想要的不是为每个要读取的文本文件和要保存的表格编写代码。我想要一些通用的东西。这可能吗?
  • Leppie,我想要的是编写一个 C# 程序,该程序能够读取任何文本文件并根据配置文件中指定的格式以正则表达式表示法拆分字段,然后将数据保存到一个数据库表。我不想为我读取并保存到表中的每个文本文件编写代码。问候。

标签: c# database types pipeline


【解决方案1】:

为什么不直接将文本文件中的所有数据写入字段都是字符串(varchar、文本等)的数据库。在某些时候,您必须查询数据库才能使用这些值,这时您可以将字符串转换为它们各自的数据类型。

【讨论】:

  • 戴夫,感谢您的建议。请让我问您,使用转换查询的过程(可能是查询可以执行多次)是否比在将每个具有正确类型的字段保存到表中之前在 C# 程序中询问数据类型的成本更低。
  • 我不确定,但猜测是您最好先获取类型信息,然后再保存到其架构反映实际使用的数据类型的数据库,因为查询信息不会不再需要转换。如果您读取数据多于写入数据,那么不必每次都进行转换可能符合您的最大利益。也就是说,我想知道读取性能是否也取决于您使用的 ADO 提供程序。我不确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 2012-05-27
  • 2019-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多