使用 Flat File Checker 进行数据验证
一篇关于使用 Flat File Checker 生成的平面文件模式进行数据验证的文章。
引言
通常需要在将平面文件导入数据库之前,或在从数据库导出数据之后验证它们。 Flat File Checker 允许您验证一组相互关联的平面文件 (*.csv, *.psv, *.txt, 等等),而无需直接在您的代码中解析它们。
您必须根据其验证文件的业务规则必须以 XML 文件的形式提供给 FLaFi 库,该 XML 文件通过 FlaFi 应用程序的图形用户界面创建。 以下是一些此类规则的示例
- 字段中的值是必需的
- 字段是具有给定格式且在给定范围内的日期
- 字段结构必须匹配正则表达式
- 两个文件已链接 [关系链接]
- 必须将字段与另一个字段进行比较
- 对一个或多个字段施加唯一约束
- 必须根据数据库中存储的值进行验证
现在可以通过几个简单的步骤来解决验证任务
- 创建平面文件模式(包含您要验证的文件的业务/数据规则的 XML 文件)
- 将 Flat File Checker 库添加到您的 .NET 应用程序
- 在您的应用程序中以最少的代码运行验证
背景
Flat File Checker 背后的想法是创建一个应用程序,该应用程序可以根据 XML 中存储的模式验证文本文件中的结构化数据,这类似于 XML 文件验证的方式。 这种方法将数据/业务规则与验证本身分离,因此需要的编码大大减少。
创建模式
以下是创建模式文件以供 FlaFi 验证使用的快速方法
- 从 SourcForge.net 下载最新版本的 Flat File Checker 的安装程序
- 安装应用程序并启动应用程序
- 使用应用程序创建一个新模式,并将其本地保存为 XML 文件
创建模式后,您可以在浏览器中将其查看为可读的数据交换规范
将 Flat File Library 添加到您的解决方案
将 Flat File Library(请参阅顶部的链接)项目添加到 Visual Studio 中的解决方案。
运行验证并处理错误
要使用 Flat File Library,您需要使用以下主要类
FlatFileSchema
- 包含文件集合的类File
- 虚拟类,用于访问与平面文件关联的多个对象:列、错误等。DataError
- 包含数据错误详细信息的类
您还可以将系统线程包含到您的项目中,因为验证是在异步模式下完成的
Imports System.Threading
以下代码显示了如何启动验证(RunValidation
子程序)并在需要时处理错误(FileSetValidated
委托子程序)。
'-----------------------------------------------------------
' VB.Net Example
'-----------------------------------------------------------
Private WithEvents _files As FlatFileSchema
Private do_checks As AutoResetEvent
' Start validation
Sub RunValidation()
' Use Flat File Checker user interface to create Schema file.
_files = New FlatFileSchema(<Schema file path>)
do_checks=_files.RunChecks()
End Sub
' Feedback errors when file(s) validation is complete
Private Sub FileSetValidated(ByVal sender As Object, _
ByVal e As SchemaValidatedEventArgs) _
Handles _files.Validated
Dim file As FlatFile
Dim err As DataError
For Each file In _files.Files
For Each err In file.Errors
' Feed back error to users here
...
Next err
Next file
End Sub
关注点
Flat File Checker 的控制台版本(附带的代码)使您可以仅用一行从命令行运行验证
c:/program files/flat file checker>flafi.exe <schema path>