我真的坚持一个看似简单的陈述。
我正在处理 DBF 表。当我在名为“DBF Viewer 2000”的程序中打开该文件时,它指出该文件是“FoxBase+/dBASE III PLUSE,无备忘录”。
如果我运行这个 VB.NET 代码
Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & opt.path & "\" & ";Extended Properties=dBase III;"
Dim oledbAdapterIns As New OleDbDataAdapter()
Dim InsConnection As New OleDbConnection(ConnectionString)
oledbAdapterIns = New OleDbDataAdapter()
InsConnection = New OleDbConnection(ConnectionString)
Try
InsConnection.Open()
Dim s As String
s = "UPDATE LIBRIAZ SET LIBRIAZ.ULTNUM=6 WHERE LIBRIAZ.REGISTRO='CW' AND LIBRIAZ.ANNO='2011' AND LIBRIAZ.CHIAVE='ORD_REG'"
oledbAdapterIns.InsertCommand = New OleDbCommand(s, InsConnection)
Dim rows As Integer = oledbAdapterIns.InsertCommand.ExecuteNonQuery()
Catch ex As Exception
Debug.Writeline(ex.Message)
End Try
oledbAdapterIns.Dispose()
InsConnection.Dispose()
它运行没有错误但没有更新表。
现在奇怪了:如果我删除三个条件之一
LIBRIAZ.REGISTRO='CW' AND LIBRIAZ.ANNO='2011' AND LIBRIAZ.CHIAVE='ORD_REG'
例如
LIBRIAZ.ANNO='2011' AND LIBRIAZ.CHIAVE='ORD_REG'
UPDATE 有效,将 LIBRIAZ.ULTNUM 设置为 6
这不是我删除哪个条件的问题,因为删除其中一个就足以使 UPDATE 工作。
这几天我试图弄清楚为什么这种行为......现在我很绝望。
有人有线索吗?