修复Float和Numeric字段类型之间的区别

时间:2011-12-27 12:26:32

标签: vb.net dbf

我有两个dbf表,必须按列(字段)类型进行比较。例如:

表1:Id (Numeric) | Name (Character) | Salary (Numeric)
表2:Id (Numeric) | Name (Character) | Salary (Float)

使用这两个表程序应该显示消息(类型在字段SALARY [F <> N]中不匹配),其中F是浮点数,N是数字。

所以我找不到这些字段之间的区别,因为对于两个表

    Using cmd2 As New OleDb.OleDbCommand("select * from Table1", connection)
                    Dim reader As OleDb.OleDbDataReader
                    reader = cmd2.ExecuteReader()

    reader.GetDataTypeName(2) 'returns DBTYPE_NUMERIC
    reader.GetFieldType(2) 'returns System.Decimal
End Using

    Using cmd3 As New OleDb.OleDbCommand("select * from Table2", connection)
                    Dim reader2 As OleDb.OleDbDataReader
                    reader2 = cmd3.ExecuteReader()

    reader2.GetDataTypeName(2) 'returns DBTYPE_NUMERIC
    reader2.GetFieldType(2) 'returns System.Decimal
End Using

我可以通过在记事本中打开dbf文件来查看dbf头文件中的'F'和'N'字符,但无法将其读取到VB,我认为这也不是一个好主意。

我该怎么处理这个问题?

1 个答案:

答案 0 :(得分:0)

FN类型完全相同,它们之间没有区别。

更有用的区别是它们的设置,因为您可以指定字段中存储的位数和小数位数。

不幸的是,我不知道如何在VB.Net中检查它。