如何在vb.net中连接dbf文件并获取数据(高手免进)

最近在写一个需要利用VB.net代码连接dbf文件的程序,有一些体会写下来与新手们共享(我也是个菜鸟)。
分析:
1、 dbf文件的连接.net的联机文档中没有事例,但可以通过其它的事例来举一反三,例如:
"Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/bin/nwind.mdb",这是一个连接Access数据库的连接字符串,可以看出其中需要数据库的驱动程序和数据库的名称及路径,但是dbf文件是单个的表单,套用上面的字符串就有一点行不通,为了解决这个问题我在网上查了多方面的资料,但是高手们几乎没有谈及这方面的知识,于是我不得不自己动脑筋。我想以前用Dephi的时候操作dbf文件都是在Windows中建立一个DNS,然后再在程序里利用datasource控件连接这个DNS,再用table控件连接相应的dbf文件就可以了,当时的这个DNS就是dbf文件的所在路径,于是我便写了这样的代码:
Imports system.data.odbc
 
Private mydataconn as odbc.odbcconnection
Dim connstring as string
Connstring=”Driver={Microsoft dBase Driver (*.dbf)};DBQ=c:/”
If mydataconn is nothing then
 Mydataconn=new odbc.odbcconnection
End if
Mydataconn.connetctionstring=connstring
Try
            mydataconn.Open()
            MsgBox(" 连接成功!")
        Catch ex As Exception
            MsgBox(" 连接失败!系统提示是:" + ex.Message)
End Try
运行。提示信息:连接成功!搞定!
2、 现在已经决定了 dbf文件的连接也需要连接数据库这一环节,而这个“数据库”就是文件所在的路径,剩下的工作就是更加实质性的问题了,如何真正连接上dbf文件。这是可以用以下代码连接(实际上是提取数据)
    Private mydatacmd As Odbc.OdbcCommand
    Private mydataAdp As Odbc.OdbcDataAdapter
    Private mydataset As DataSet
Private mytable As DataTable
 
    If Me.mydatacmd Is Nothing Then
            Me.mydatacmd = New Odbc.OdbcCommand
    End If
    If Me.mydataAdp Is Nothing Then
            Me.mydataAdp = New Odbc.OdbcDataAdapter
    End If
    Me.mydatacmd.Connection = Me.mydataconn
    Me.mydatacmd.CommandText = "select * from " + 文件名
        Me.mydataAdp.SelectCommand = Me.mydatacmd
        If Me.mytable Is Nothing Then
            Me.mytable = New DataTable
        End If
        Try
            Me.mydataAdp.Fill(Me.mytable)
        Catch ex As Exception
            MsgBox(" 获取数据失败!系统提示信息:" + ex.Message)
        End Try
        Me.DataGrid1.DataSource = Me.mytable
3、 一般情况下我们是希望用户能够通过打开文件对话框进行文件的选择,而不是通过 TextBox控件来输入文件路径和文件名,于是这里又出现了一个问题,打开对话框返回的FileName中既包含的有路径,又有文件名,以下是解决这个问题的所有代码,请读者自己分析:
Dim myfilenameandpath As String
        Dim mycount As Integer
        Dim myfilepath As String
        Dim myfilename As String
        If mydataconn Is Nothing Then
            mydataconn = New Odbc.OdbcConnection
        End If
        If Me.OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            myfilenameandpath = Me.OpenFileDialog1.FileName
        End If
        mycount = myfilenameandpath.LastIndexOfAny("/")
        myfilename = myfilenameandpath.Remove(0, mycount + 1)
     myfilepath = myfilenameandpath.Remove(mycount + 1, myfilenameandpath.Length - mycount - 1)
   Me.mydataconn.ConnectionString = "Driver={Microsoft dBase driver (*.dbf)};DBQ=" + myfilepath
        If Me.mydatacmd Is Nothing Then
            Me.mydatacmd = New Odbc.OdbcCommand
        End If
        If Me.mydataAdp Is Nothing Then
            Me.mydataAdp = New Odbc.OdbcDataAdapter
        End If
        Try
            Me.mydataconn.Open()
            MsgBox(" 连接成功!")
        Catch ex As Exception
            MsgBox(" 连接失败!系统提示是:" + ex.Message)
        End Try
        Me.mydatacmd.Connection = Me.mydataconn
        Me.mydatacmd.CommandText = "select * from " + myfilename
        Me.mydataAdp.SelectCommand = Me.mydatacmd
        If Me.mytable Is Nothing Then
            Me.mytable = New DataTable
        End If
        Try
            Me.mydataAdp.Fill(Me.mytable)
        Catch ex As Exception
            MsgBox(" 获取数据失败!系统提示信息:" + ex.Message)
        End Try
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值