1

VS 2010,VB.NET,WINFORMS。在我的应用程序中,我需要导入 foxpro 数据库表并排除已删除的记录。问题是 FOXPRO 表将已删除的项目保留在同一个表中。我尝试在连接字符串中使用 DELETED=NO 但 vb 抛出

"Format of the initialization string does not conform to the OLE DB specification."

我的功能如下:

    Dim _DBConn1 As String = "provider=vfpoledb.1; Data Source = " & file1 & ";DELETED=NO"
    Dim _DBConn2 As String = "provider=vfpoledb.1; Data Source = " & file2 & ";DELETED=NO"
    Dim _DBConn3 As String = "provider=vfpoledb.1; Data Source = " & file3 & ";DELETED=NO"
    Dim _DBConn4 As String = "provider=vfpoledb.1; Data Source = " & file4 & ";DELETED=NO"

    Using _connection As New OleDbConnection(_DBConn1)
        Dim _savedId As String = String.Empty
        _connection.Open()
        Using _command As New OleDbCommand("SELECT * FROM " & _fileName1 & "", _connection)
            Using _reader2 As OleDbDataReader = _command.ExecuteReader
                While _reader2.Read
                    counter += 1
                End While
                y = 100 / counter
                Dim x As String = String.Empty
            End Using
            Using _reader As OleDbDataReader = _command.ExecuteReader
                While _reader.Read
                    Dim _letter As Integer = Nothing
                    Dim _name As String = String.Empty
                    Dim _content As String = String.Empty
                    Dim _copies As Integer = Nothing
                    Dim _type As Integer = Nothing
                    Dim _fee As Decimal = Nothing

                    _letter = _reader.Item(0)
                    _name = _reader.Item(1)
                    _content = _reader.Item(2)
                    _copies = _reader.Item(3)
                    _type = _reader.Item(4)
                    _fee = _reader.Item(5)
                    _UpdateLetters(_letter, _name, _content, _copies, _type, _fee)
                    _progress += y
                    Dim d As Integer = Convert.ToInt16((Convert.ToString(y).Split(".")(0)))
                    ProgressBar1.Increment(d)
                End While
            End Using
        End Using
        _connection.Close()
    End Using



    Using _connection As New OleDbConnection(_DBConn2)
        Dim _savedId As String = String.Empty
        _connection.Open()
        Using _command As New OleDbCommand("SELECT * FROM " & _fileName2 & "", _connection)
            Using _reader2 As OleDbDataReader = _command.ExecuteReader
                While _reader2.Read
                    counter += 1
                End While
                y = 100 / counter
                Dim x As String = String.Empty
            End Using
            Using _reader As OleDbDataReader = _command.ExecuteReader
                While _reader.Read
                    Dim _unit As String = String.Empty
                    Dim _Size As String = String.Empty
                    Dim _contractDate As String = String.Empty
                    Dim _deposit As Decimal = Nothing
                    Dim _Tfirst As String = String.Empty
                    Dim _Tlast As String = String.Empty
                    Dim _optional As String = String.Empty
                    Dim _address1 As String = String.Empty
                    Dim _address2 As String = String.Empty
                    Dim _city As String = String.Empty
                    Dim _st As String = String.Empty
                    Dim _zip As String = String.Empty
                    Dim _hphone As String = String.Empty
                    Dim _drLicense As String = String.Empty
                    Dim _employer As String = String.Empty
                    Dim _wphone As String = String.Empty
                    Dim _bname As String = String.Empty
                    Dim _baddress1 As String = String.Empty
                    Dim _baddress2 As String = String.Empty
                    Dim _bCity As String = String.Empty
                    Dim _bState As String = String.Empty
                    Dim _bZip As String = String.Empty
                    Dim _bPhone As String = String.Empty
                    Dim _contact_Name As String = String.Empty
                    Dim _contact_Address1 As String = String.Empty
                    Dim _contact_Address2 As String = String.Empty
                    Dim _contact_City As String = String.Empty
                    Dim _contact_State As String = String.Empty
                    Dim _contact_zip As String = String.Empty
                    Dim _contact_phone As String = String.Empty
                    Dim _balance As Decimal = Nothing
                    Dim _lastPaymentDate As String = String.Empty
                    Dim _lastPayAmount As Decimal = Nothing
                    Dim _memo As String = String.Empty
                    Dim _lateFee As Decimal = Nothing
                    Dim _email As String = String.Empty

                    _unit = _reader.Item(0)
                    _Size = _reader.Item(1)
                    _contractDate = _reader.Item(2)
                    _deposit = _reader.Item(3)
                    _Tfirst = _reader.Item(4)
                    _Tlast = _reader.Item(5)
                    _optional = _reader.Item(6)
                    _address1 = _reader.Item(7)
                    _address2 = _reader.Item(8)
                    _city = _reader.Item(9)
                    _st = _reader.Item(10)
                    _zip = _reader.Item(11)
                    _hphone = _reader.Item(12)
                    _drLicense = _reader.Item(13)
                    _employer = _reader.Item(15)
                    _wphone = _reader.Item(16)
                    _bname = _reader.Item(17)
                    _baddress1 = _reader.Item(18)
                    _baddress2 = _reader.Item(19)
                    _bCity = _reader.Item(20)
                    _bState = _reader.Item(21)
                    _bZip = _reader.Item(22)
                    _bPhone = _reader.Item(23)
                    _contact_Name = _reader.Item(24)
                    _contact_Address1 = _reader.Item(25)
                    _contact_Address2 = _reader.Item(26)
                    _contact_City = _reader.Item(27)
                    _contact_State = _reader.Item(28)
                    _contact_zip = _reader.Item(29)
                    _contact_phone = _reader.Item(30)
                    _balance = _reader.Item(32)
                    _lastPaymentDate = _reader.Item(33)
                    _lastPayAmount = _reader.Item(34)
                    _memo = _reader.Item(46)
                    _lateFee = _reader.Item(49)
                    _email = _reader.Item(50)
                    _UpdateTenent(_unit, _Size, _contractDate, _deposit, _Tfirst, _Tlast, _optional, _address1, _address2, _city, _st, _zip, _hphone, _drLicense, _employer, _wphone, _bname, _baddress1, _baddress2, _bCity, _bState, _bZip, _bPhone, _contact_Name, _contact_Address1, _contact_Address2, _contact_City, _contact_State, _contact_zip, _contact_phone, _balance, _lastPaymentDate, _lastPayAmount, _memo, _lateFee, _email)
                    _progress += y
                    Dim d As Integer = Convert.ToInt16((Convert.ToString(y).Split(".")(0)))
                    ProgressBar2.Increment(d)
                End While
            End Using
        End Using
        _connection.Close()
    End Using

任何想法我的连接字符串是错误的?谷歌结果向我指出了 DELETED=NO 的方向,但是现在我已经添加了它,它抛出了那个异常错误..

4

1 回答 1

5

默认情况下,VfpOleDb 提供程序会排除已删除的记录。因此,您的连接字符串不需要包含已删除的设置。如果您想包含删除记录...您将在连接字符串中包含“deleted=false”。

于 2012-05-23T16:40:12.417 回答