参考: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];

最新文章

  1. 前端开发css实战:使用css制作网页中的多级菜单
  2. JavaScript学习(零)前引
  3. ORB-SLAM(一)简介
  4. php5.6 一键编译
  5. MMU内存管理单元相关知识点总结
  6. Interview
  7. 9月5日网页基础知识 通用标签、属性(body属性、路径、格式控制) 通用标签(有序列表、无序列表、常用标签)(补)
  8. 如何增强 Linux 系统的安全性,第一部分: Linux 安全模块(LSM)简介
  9. RTC框架
  10. RPi Debian Auto Login
  11. typedef与define的区别
  12. [MUD]MUDLIB详解/MUDOS运行流程/最小MUDLIB/mud文件结构
  13. 思考----拒绝单纯copy
  14. AVR开发 Arduino方法(一) 端口子系统
  15. 剑指前端(前端入门笔记)——Date类型
  16. Jenkins之Job建立-运行本地脚本
  17. 机器学习排序算法:RankNet to LambdaRank to LambdaMART
  18. sqlserver触发器insert,delete,update
  19. 机器人关节空间轨迹规划--S型速度规划
  20. 利用arcgis发布综合又详细的地理定位服务

热门文章

  1. iOS开发 清除电话号码中的其他符号
  2. Python 一行命令ftp服务器
  3. XSS学习分支图
  4. Redis经常使用命令
  5. 2014MadCon厦门分享会-笔记(下)
  6. 在线API
  7. AIX下RAC搭建 Oracle10G(二)主机配置
  8. Robot Framework自己主动化測试框架之我见
  9. Java网络编程知识点(1)
  10. sanic官方文档解析之静态文件和版本