【发布时间】:2015-03-22 00:50:48
【问题描述】:
我正在尝试使用 VB.NET 读取 .DBF 数据库...代码一直在工作,直到我到达其中一个表上的列,该列应该是十进制但它却用星号填充。
我正在使用的连接字符串和阅读器是这样的:
Using SDBconnection As New OleDbConnection("User ID=;" & _
"DSN=;" & _
"Cache Authentication=False;" & _
"Data Source=""" & TextBox_DBLoc.Text & """;" & _
"Provider=""VFPOLEDB"";" & _
"Collating Sequence=MACHINE;" & _
"Mask Password=False;" & _
"persist security info=False;" & _
"Mode=Share Deny None;" & _
"Extended Properties=;" & _
"Encrypt Password=False")
Dim oleReader As OleDbDataReader = New OleDbCommand("Select * from " & table, SDBconnection).ExecuteReader()
有什么方法可以在数据类型不对应时进行评估,然后再进行强制转换或类似的事情?
该表格在其他DBF阅读器软件中可以读取,读取时不会显示错误。我该怎么做?
编辑: 我的代码到达带星号的列时抛出的错误消息是这样的:
提供程序无法确定十进制值。例如,行刚刚创建,Decimal 列的默认值不可用,消费者尚未设置新的 Decimal 值。
【问题讨论】:
-
您在哪里显示数据,您在哪里看到该字段用星号填充?这不是数据的问题;无论您以何种方式显示它都是一个问题,因为该表格在其他 DBF 阅读器软件中是可读的。它也是你的可读;你只是显示错了。
-
首先,我只是将表格转换为 csv 文件,当我读取填充有 *** 的列时会抛出“提供程序无法确定十进制值。例如,该行刚刚创建,Decimal 列的默认值不可用,消费者尚未设置新的 Decimal 值。”
-
我用我下载的名为 DBF Viewer 2000 的软件打开表格看到了星号,在那里我可以毫无问题地打开表格。
标签: vb.net dbf visual-foxpro