这里就如何动态读取ADO.NET Excel数据和列出了读取ADO.NET Excel数据文件内“表”定义元数据,并显示出来的的程序片断。

咱们用ADO.NET操作数据库,咱们就会更Excel打交道,这是避免不了的。现在要介绍是怎么动态的读取ADO.NET Excel数据,这儿的动态指的是事前不知道Excel文件的是什么样的结构,或许无法猜测,比方一张.xls文件有多少张sheet,而且每张sheet的结构或许都不相同等等。其实咱们能够经过获取Excel的“架构信息”来动态的结构查询句子。这儿的“架构信息”与数据库范畴的“数据库架构信息”含义相同(也称“元数据”),关于整个数据库,这些“元数据”一般包含数据库或可经过数据库中的数据源、表和视图得到的目录以及所存在的束缚等;而关于数据库中的表,架构信息包含主键、列和主动编号字段等。

全面归纳ADO.NET Excel数据读取文件  ADO.NET Excel数据 第1张

#T#在联系数据库供给的各种目标中(表、视图、存储进程等),ADO.NET Excel数据源仅供给相当于表的目标,它由指定作业簿中的作业表和界说的命名区域组成。命名区域被视为“表”,而作业表被视为“体系表”)这儿咱们将Excel也当作一个“数据库”来对待,然后使用OleDbConnection.GetOleDbSchemaTable 办法。留意:关于那些不熟悉 OLE DB 架构行集的人而言,它们基本上是由 ANSI SQL-92 界说的数据库结构的标准化架构。每个架构行集具有为指定结构供给界说元数据的一组列(称作 .NET 文档中的“约束列”)。这样,假如恳求架构信息(例如,列的架构信息或排序规矩的架构信息),则您会清晰知道能够得到哪种类型的数据。

以下是读取ADO.NET Excel数据文件内“表”界说元数据,并显示出来的的程序片断:

  1. //读取Excel数据,填充DataSet
  2. //衔接字符串
  3. stringxlsPath=Server.MapPath("~/app_data/somefile.xls");
  4. stringconnStr="Provider=Microsoft.Jet.OLEDB.4.0;"+
  5. "ExtendedProperties=\"Excel8.0;HDR=No;IMEX=1\";"+
    //指定扩展特点为MicrosoftExcel8.0(97)9.0(2000)10.0(2002),而且***行作为数据回来,且以文本方法读取
  6. "datasource="+xlsPath;
  7. stringsql_F="SELECT*FROM[{0}]";
  8. OleDbConnectionconn=null;
  9. OleDbDataAdapterda=null;
  10. DataTabletblSchema=null;
  11. IList<string>tblNames=null;
  12. //初始化衔接,并翻开
  13. conn=newOleDbConnection(connStr);
  14. conn.Open();
  15. //获取数据源的表界说元数据
  16. //tblSchema=conn.GetSchema("Tables");
  17. tblSchema=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newobject[]{null,null,null,"TABLE"});
  18. GridView1.DataSource=tblSchema;
  19. GridView1.DataBind();
  20. //封闭衔接
  21. conn.Close();
转载请说明出处
知优网 » 全面归纳ADO.NET Excel数据读取文件

发表评论

您需要后才能发表评论