• 【210】通过OleDb读写Excel数据到DataTable


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

     

  • 相关阅读:
    Tensorflow实战系列之三:
    Tensorflow实战系列之二:
    scala映射和元组
    scala函数
    scala基础
    Hadoop Eclipse 插件制作以及安装
    理解HBase
    理解HDFS
    Hadoop入门学习路线
    日志框架Log4j
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/5765355.html
Copyright © 2020-2023  润新知