vb.net读取dbf、Excel、Access数据文件

原创 2007年10月09日 15:30:00

看到网上很多朋友在查找使用VB.net如何对DBF、XLS 等常用数据文件进行访问,特别写了个小程序,来演示一下。

由于对具体数据文件的操作已经被封装到了oledb中,所以对数据文件的操作在vb。net的代码是一样的,学要我们做的就是为oldb连接字符串设置为正确连接字符串就行了。有个网站http://www.connectionstrings.com/提供了大量的关于连接字符串的信息,大家可以参考。并不是设置好链接字符串就可以访问所有的数据文件,可能还需要安装数据访问驱动程序。

本实例支持dbf文件、Excel、Access(含2007版)文件的支持

实例界面:实例界面

下面就是实例的代码:

 

Imports System.Data.OleDb
Public Class Form1Class Form1
    
Dim dbfconn As OleDb.OleDbConnection = New OleDb.OleDbConnection
    
Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        
'dbf文件操作
        'http://www.connectionstrings.com/?carrier=dbffoxpro
        Dim path, FileName As String
        
Me.OpenFileDialog1.Title = "选择dbf文件"
        
Me.OpenFileDialog1.Filter = "dbf文件|*.dbf"
        
If Me.OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            path 
= System.IO.Path.GetDirectoryName(OpenFileDialog1.FileName)
            FileName 
= System.IO.Path.GetFileName(OpenFileDialog1.FileName)

            FileName 
= Microsoft.VisualBasic.Left(FileName.ToUpper, FileName.Length - 4)


            
Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Extended Properties=dBASE IV;User ID=Admin;Password=;"

            
'Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e: mp;Extended Properties=dBASE IV;User ID=Admin;Password=;"
            Dim dbfconn As OleDb.OleDbConnection = New OleDb.OleDbConnection
            dbfconn.ConnectionString 
= conn

            
'Dim cmd As String = "select * from w"
            Dim cmd As String = "select * from " & FileName
            
Dim adapter As New OleDbDataAdapter(cmd, dbfconn)
            
Dim topics As New DataSet
            adapter.Fill(topics)
            
Me.DataGridView1.DataSource = topics.Tables(0)
            
Me.DataGridView1.Refresh()
        
End If


    
End Sub


    
Private Sub open_excel_Click()Sub open_excel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles open_excel.Click
        
Dim path, FileName, FileExname As String
        
Dim conn As String
        
Me.OpenFileDialog1.Title = "选择Excel文件"
        
Me.OpenFileDialog1.Filter = "Excel 文件|*.xls*"
        
If Me.OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            path 
= System.IO.Path.GetFullPath(OpenFileDialog1.FileName)
            FileName 
= System.IO.Path.GetFileName(OpenFileDialog1.FileName)
            FileExname 
= System.IO.Path.GetExtension(OpenFileDialog1.FileName).ToUpper
            FileName 
= Microsoft.VisualBasic.Left(FileName.ToUpper, FileName.Length - 4)

            
If FileExname = "XLSX" Then

                conn 
= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';"
            
Else
                conn 
= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Extended Properties='Excel 12.0;HDR=YES';"

            
End If


            dbfconn.ConnectionString 
= conn
            
'获取数据表列表
       Dim table_list As Data.DataTable = GetSchemaTable(dbfconn, "TABLE")

            
'在combbox列表控件中显示数据库中包含的数据表
            
Me.cb_table_list.DataSource = table_list.DefaultView
            
Me.cb_table_list.ValueMember = "TABLE_NAME"
            
Me.cb_table_list.DisplayMember = "TABLE_NAME"

        
End If
    
End Sub



    
Private Function GetSchemaTable()Function GetSchemaTable(ByVal connection As Data.OleDb.OleDbConnection, ByVal Type As String)
        
' 获取数据表列表
        'Type 有:"TABLE,VIEW,ACCESS TABLE,SYSTEM TABLE",

        Type 
= Type.ToUpper
        connection.Open()
        
Dim table_list As Data.DataTable
        table_list 
= connection.GetOleDbSchemaTable(Data.OleDb.OleDbSchemaGuid.Tables, New Object() {NothingNothingNothing, Type})
        connection.Close()
        
Return table_list
    
End Function


    
Private Sub table_list_SelectedIndexChanged()Sub table_list_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cb_table_list.SelectedIndexChanged
        
''获取数据表的内容
        'MsgBox(Me.cb_table_list.SelectedValue)
        If Me.cb_table_list.SelectedValue.ToString <> "System.Data.DataRowView" Then
            
Dim cmd As String = "select * from [" & Me.cb_table_list.SelectedValue.ToString & "]"
            
Dim adapter As New OleDbDataAdapter(cmd, dbfconn)
            
Dim topics As New DataSet
            adapter.Fill(topics)
            
Me.DataGridView1.DataSource = topics.Tables(0)
            
Me.DataGridView1.Refresh()
        
End If

    
End Sub


    
Private Sub Open_Access_Click()Sub Open_Access_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Open_Access.Click
 
        
Dim path, FileName, FileExname As String
        
Dim conn As String
        
Me.OpenFileDialog1.Title = "选择Access文件"
        
Me.OpenFileDialog1.Filter = "Access 文件|*.mdb|Access 2007 文件|*.accdb"
        
If Me.OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            path 
= System.IO.Path.GetFullPath(OpenFileDialog1.FileName)
            FileName 
= System.IO.Path.GetFileName(OpenFileDialog1.FileName)
            FileExname 
= System.IO.Path.GetExtension(OpenFileDialog1.FileName).ToUpper
            FileName 
= Microsoft.VisualBasic.Left(FileName.ToUpper, FileName.Length - 4)

            
If FileExname = "MDB" Then
'access 97 -2003  连接字符串
                conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Jet OLEDB:Database Password=;"
            
Else
'access 2007 连接字符串
                conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Jet OLEDB:Database Password=MyDbPassword;"

            
End If
            dbfconn.ConnectionString 
= conn
            
'获取数据表列表
            Dim table_list As Data.DataTable = GetSchemaTable(dbfconn, "TABLE")

            
Me.cb_table_list.DataSource = table_list.DefaultView
            
Me.cb_table_list.ValueMember = "TABLE_NAME"
            
Me.cb_table_list.DisplayMember = "TABLE_NAME"
        
End If


    
End Sub

End Class

vb操作dbf 源代码

Dim CNN     As New ADODB.ConnectionDim STRSQL     As String打开Private Sub Form_Load()Sub Form_Load() ...
  • anywn1314
  • anywn1314
  • 2008-01-17 09:56:00
  • 2123

[C#][ASP.NET]DataSet,DataTable(DataSet)导出至指定XLS,DBF模版

using System; using System.Data.Odbc; using System.Data.OleDb; using System.Data; using System.C...
  • u012949335
  • u012949335
  • 2016-10-12 14:47:39
  • 586

vb 与 .accdb 格式的access数据库的连接方法

在用vb连接access数据库时,出现了这样的错误: 这是你的数据库格式不被 程序识别。vb默认的一般是.,mdb  access数据库格式!这时我们看一下我们要连接的 是.accdb 格式的...
  • wangyongxia921
  • wangyongxia921
  • 2012-05-27 10:03:17
  • 15401

在VS2013平台下,用VB.net 连接Access数据库

从开始学习计算机,我们使用的一直是SQL数据库。这次接触了Access数据库,我将从Access创建到连接向大家分享一下我在Access数据库中的收获。...
  • WKX18330698534
  • WKX18330698534
  • 2016-04-17 20:41:12
  • 5648

VB.NET操作XLS_ACCDB_DB等文件的示例

  • 2009年03月10日 11:28
  • 79KB
  • 下载

vb.net读取dbf、Excel、Access数据文件

看到网上很多朋友在查找使用VB.net如何对DBF、XLS 等常用数据文件进行访问,特别写了个小程序,来演示一下。由于对具体数据文件的操作已经被封装到了oledb中,所以对数据文件的操作在vb。net...
  • zhichao2001
  • zhichao2001
  • 2007-10-09 15:30:00
  • 4109

vb.net 封装 组件 成 com的方法

  前几天一直在研究如何将.net的组件封装成com供非托管代码调用。上网查资料,查书,试验,最后测试了vb.net,c#,vc++.net 等多种语言,都没有搞定。在论坛上发了帖子。虽然有回复,但是...
  • precipitant
  • precipitant
  • 2007-09-07 11:35:00
  • 4347

vb.net读取dbf、Excel、Access数据文件实例

  • 2007年10月11日 14:13
  • 79KB
  • 下载

<em>DBF</em>解压程序.适合大多数<em>DBF</em>数据文件

java操作<em>dbf</em>+java读取<em>dbf</em> 项目源码 立即下载 上传者: yjflinchong 时间: 2011-04-22 综合评分: 5 积分/C币:3 <em>vb.net</em>读取<em>dbf</em>、Excel、Access数据文件实例 ...
  • 2018年04月10日 00:00

<em>VB.NET</em> excel导入ACCESS中

<em>vb.net</em>读取<em>dbf</em>、Excel、Access数据文件实例 立即下载 上传者: zhichao2001 时间: 2007-10-11 综合评分: 4 积分/C币:3 上传资源 wan...
  • 2018年04月11日 00:00
收藏助手
不良信息举报
您举报文章:vb.net读取dbf、Excel、Access数据文件
举报原因:
原因补充:

(最多只允许输入30个字)