参考:C#通过OLEDB读写Excel2013显示到datagrid控件,修改数据集并更新excel2013

解决:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。AccessDatabaseEngine.exe

目录:

1. System.Data.OleDb 命名空间

2. 代码实现


System.Data.OleDb 命名空间

  • OleDbConnection 类:表示与数据源的开放连接。

    • OleDbConnection(String):使用指定的连接字符串初始化 OleDbConnection 类的新实例。
    • ConnectionString:获取或设置用于打开数据库的字符串。 (上面构造函数的string)
      string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"d:/成绩表2013.xlsx" +
      ";Extended Properties='Excel 12.0;HDR=YES;IMEX=0'";
    • Open:使用 ConnectionString 所指定的属性设置打开数据库连接。
    • Close:关闭到数据源的连接。
  • OleDbDataAdapter 类:表示一组数据命令和一个数据库连接,它们用于填充 DataSet 和更新数据源。
    • OleDbDataAdapter():初始化 OleDbDataAdapter 类的新实例。
    • OleDbDataAdapter(OleDbCommand):初始化 OleDbDataAdapter 类的新实例,用指定的 OleDbCommand 作为 SelectCommand 的属性。
    • OleDbDataAdapter(String, OleDbConnection):用 SelectCommand 初始化 OleDbDataAdapter 类的新实例。
    • OleDbDataAdapter(String, String):用 SelectCommand 初始化 OleDbDataAdapter 类的新实例。
    • Fill(DataSet, String):在 DataSet 中添加或刷新行以匹配使用 DataSet 和 DataTable 名称的数据源中的行。
      OleDbConnection myConn = new OleDbConnection(strCon);
      string strCom = "SELECT * FROM [Sheet1$]";
      myConn.Open();
      OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(strCom, myConn);
      DataSet myDataSet = new DataSet();
      myDataAdapter.Fill(myDataSet, "[Sheet1$]");
      myConn.Close();
  • DateSet 类:表示数据的内存中缓存。(小数据量的适合用,一次将所有放入内存)
  • DataTable 类:表示一个内存中数据表

代码实现:(默认将第一行设置为标题,表格内容从第二行开始计算)

//扩展名是 xls 会出错,xlsx 就不会出错
string str_filename = @"D:\01-Working\综合业务平台数据\浮标\FB.xls";
string strCon = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", str_filename);
//新建连接
OleDbConnection myConn = new OleDbConnection(strCon);
myConn.Open();
//新建SQL语句,获取 Sheet1 全部数据
string strCom = "SELECT * FROM [Sheet1$]";
//用于将数据添加到DataSet中
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(strCom, myConn);
DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "[Sheet1$]");
myConn.Close();
//初始化DataTable实例
DataTable dt = myDataSet.Tables[0];

【210】通过OleDb读写Excel数据到DataTable的更多相关文章

  1. 读取Excel数据到DataTable

    读取Excel数据到DataTable 代码 /// <summary> /// 获取指定路径.指定工作簿名称的Excel数据:取第一个sheet的数据 /// </summary& ...

  2. .NET 使用OLEDB导入Excel数据

    /** * *在本章节中主要讲解的是如何使用OLEDB将Excel中的数据导入到数据库中 * */using System; using System.Data; using System.Data. ...

  3. 使用NPOI读取Excel数据到DataTable

    如今XML文件的存储格式大行其道,可是也不是适用于全部情况,非常多单位的数据交换还是使用Excel的形式.这就使得我们须要读取Excel内的数据.载入到程序中进行处理.可是如何有效率的读取,如何使程序 ...

  4. C#读取excel数据到datatable中

    DataTable dtGBPatient = new DataTable(); string strConn;string excelName; //注意:把一个excel文件看做一个数据库,一个s ...

  5. Python 读写excel数据

    读取excel 文件的数据 import csv with open('D:/mystuff/11.csv','r') as f: reader = csv.reader(f) for row in ...

  6. 【C#】采用OleDB读取Excel文件转DataTable

    using System; using System.Data; using System.Data.OleDb; using System.IO; using System.Linq; using ...

  7. Aspose.Cells 读取Excel数据到DataTable

    C#代码: Workbook workbook = new Workbook(); workbook.Open(excelfile); Cells cells = workbook.Worksheet ...

  8. C#通过OLEDB导出大数据到Excel

    C#导出数据到Excel,基本有两种方法,一种方法是通过Microsoft.Office.Interop.Excel.Application,一行一列的写入Excel中:另一种方法是通过OLEDB,利 ...

  9. 使用OLEDB读取不同版本Excel数据的连接字符串设置

    摘要: 用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel中的数据读取出来,但是excel2003和excel2007/2010的连接字符串是不同的/// summary // ...

随机推荐

  1. 【hql】spring data jpa中 @Query使用hql查询 问题

    spring data jpa中 @Query使用hql查询 问题 使用hql查询, 1.from后面跟的是实体类 不是数据表名 2.字段应该用实体类中的字段 而不是数据表中的属性 实体如下 hql使 ...

  2. iOS10获得系统权限

    iOS 10 对系统隐私权限的管理更加严格,如果你不设置就会直接崩溃,一般解决办法都是在info.plist文件添加对应的Key-Value就可以了. <!-- 相册 --> <ke ...

  3. python 怎么启动一个外部命令程序, 并且不阻塞当前进程

    http://www.myexception.cn/perl-python/1278887.html http://blog.chinaunix.net/uid-25979788-id-3081912 ...

  4. 【转】 nginx rewrite 伪静态配置参数详细说明

    nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 正则表达式匹配,其中: * ~ 为区分大小写匹配  * ~* 为不区分大小写匹配  * !~和!~*分别为区分大小写不匹配及不区分 ...

  5. 【转】C语言中整型运算取Ceiling问题

    原文:http://blog.csdn.net/laciqs/article/details/6662472 --------------------------------------------- ...

  6. android的armeabi和armeabi-v7a

    在ANE中如果SDK调用了so库,则需要把so库放到ANE下Android-ARM/lib/armeabi (调试模式)或者 armeabi-v7a(发行模式)下. 可以贴个ADT代码说明问题: // ...

  7. C#语法复习1

    一.C#与.net框架 .net是语言无关的. 程序的执行流程: .net兼容语言的源代码文件 .net兼容编译器 程序集(公共中间语言(CIL)common intermediate languag ...

  8. WPF MVVM UI分离之《交互与数据分离》 基础才是重中之重~delegate里的Invoke和BeginInvoke 将不确定变为确定系列~目录(“机器最能证明一切”) 爱上MVC3系列~全局异常处理与异常日志 基础才是重中之重~lock和monitor的区别 将不确定变成确定~我想监视我的对象,如果是某个值,就叫另一些方法自动运行 将不确定变成确定~LINQ DBML模型可以对

    WPF MVVM UI分离之<交互与数据分离>   在我们使用WPF过程中,不可避免并且超级喜欢使用MVVM框架. 那么,使用MVVM的出发点是视觉与业务逻辑分离,即UI与数据分离 诸如下 ...

  9. (转载)常用的Mysql数据库操作语句大全

    打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...

  10. 解决移动端页面滚动后不触发touchend事件

    解决移动端页面滚动后不触发touchend事件 问题 在移动端页面进行优化时,一般使用touch事件替代鼠标相关事件.用的较多的是使用touchend事件替代PC端的click和mouseup事件. ...