为妹子做的从excel中读取数据的vb答题小程序

  1. 利用ADO读取excel
    一切在机房的win7电脑中毫无问题
'需要先引入ado 库  
  
    '功能函数,读取excel  
    '这个函数可以不用管内部的实现方法  
    '传入 excel名称,与excel sheet表名,'从excel中读取数据,返回dataset  
    'dataset 是一种数据结构,使用方法在下一个函数  
    Function ReadExcel(FileName As String, SheetName As String)  
        Dim _Connectstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<FilePath>;Extended Properties=""Excel 8.0;HDR=NO;IMEX=1"""  
        Dim excConn As New OleDb.OleDbConnection(_Connectstring.Replace("<FilePath>", FileName))  
        '上两行打开一个读取excel的链接  
  
        Dim mydataset As DataSet = New DataSet  
        Using da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("SELECT * FROM [" & SheetName & "$]", excConn)  
            Try  
                da.Fill(mydataset, SheetName)  
            Catch ex As Exception  
                Console.WriteLine(ex)  
            End Try  
        End Using  
        '上面一段将数据写入到一个dataset中  
  
        Return mydataset  
    End Function  
  
    '从dataset中读取一个数据  
    '传入上个函数返回的dataset ,sheet名, 第几行,第几列, 返回数据  
    '用法看内部  
    Function ReadCell(dataset As DataSet, SheetName As String, row As Integer, col As Integer)  
        Return dataset.Tables(SheetName).Rows(row).Item(col)  
    End Function  
  
    '下面函数包含了一个示例=——=  
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
        Dim ExcelDataSet As DataSet = New DataSet  
        '调用ReadExcel 函数从excel读取到dataset  
        ExcelDataSet = ReadExcel("D:Orders1.xls", "Orders")  
  
        For i = 1 To 10  
            For j = 1 To 2  
                '调用readcell 从dataset中读取某一单元格的数据  
                Console.WriteLine(ReadCell(ExcelDataSet, "Orders", i, j))  
            Next j  
        Next i  
  
    End Sub  

2.但是呢,在win10中出现了数据库驱动错误,经百度,发现是微软在安全更新中更新了驱动程序
关于“System.Data.OleDb.OleDbException,外部数据库驱动程序 (1) 中的意外错误。”的解决方案

解决方案:

1、网上的方案是:在控制面板>程序>程序和功能>已安装更新中,找到对应的两个补丁,进行卸载。不同系统对应不同的补丁,具体可以参考: http://www.cnblogs.com/net-god/p/7661313.html

2、微软给出的解决方案是:下载新的驱动引擎( Microsoft Access Database Engine 2010 Redistributable ),更改
Provider=Microsoft.Jet.OLEDB.4.0Provider=Microsoft.ACE.OLEDB.12.0。
http://blog.csdn.net/question00/article/details/78282292

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,308评论 25 709
  • 我总是无缘无故的觉得孤独,虽然每天与很多人擦肩而过,与一些人交谈,可总是觉得他们是他们,我是我,我们分属于不同的世...
    迷烟阅读 1,553评论 0 0
  • 你不苟言笑 我缄口结舌 你冷若冰霜 我含情脉脉 在爱的寰宇高贵的都是你 多情的都是我
    零更一阅读 1,432评论 0 2

友情链接更多精彩内容