XCode读取Excel数据并适用于任何数据库

移动开发 iOS
本文介绍的时XCode读取Excel数据并适用于任何数据库,详细的介绍了Xcode读取Excel数据库的内容,先来看详细内容。

XCode读取Excel数据并适用于任何数据库是本文要介绍的内容,不多说,直接进入话题。虽然是充血模型,虽然是强类型,XCode同样支持遍历任何数据库结构,并以强类型(相对于DataSet等字典访问)方式读取数据。

要遍历数据库结构是很容易的事情,绝大多数Orm都支持。

但是在没有实体类的情况下以强类型方式读取数据,就稍微有些复杂。XCode的原理是为每张表动态创建继承自Entity<>的实体类,然后通过接口来操作实体类。

代码中有了快速反射,虽然没有性能损耗,但是用起来挺别扭的,这里说明了XCode对于实体类元数据的动态访问支持还不够。

  1. // 添加一个连接  
  2. DAL.AddConnStr("test", "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=Test.xls;" + "Extended Properties=Excel 8.0;", null, null);  
  3. DAL dal = DAL.Create("test");  
  4. // 遍历所有表  
  5. foreach (XTable table in dal.Tables)  
  6. {  
  7.     Console.WriteLine("表 {0}:", table.Name);  
  8.     // 创建一个实体操作者,这里会为数据表动态生成一个实体类,并使用CodeDom编译  
  9.     IEntityOperate op = dal.CreateOperate(table.Name.Replace("$", null));  
  10.     // 因为动态生成代码的缺陷,表名中的$已经被去掉,并且Excel的查询总必须给表名加上方括号,还是因为有$  
  11.     // 下面通过快速反射设置Meta.TableName  
  12.     Type type = op.GetType();  
  13.     type = typeof(Entity<>.Meta).MakeGenericType(type);  
  14.     PropertyInfoX.Create(type, "TableName").SetValue("[" + table.Name + "]");  
  15.     // 如果没有记录,跳过  
  16.     if (op.FindCount() < 1) continue;  
  17.      // 输出表头  
  18.     foreach (FieldItem item in op.Fields)  
  19.     {  
  20.         if (item.Name.StartsWith("F")) break;  
  21.  
  22.         Console.Write("{0}\t", item.Name);  
  23.     }  
  24.     Console.WriteLine();  
  25.     // 查找所有数据  
  26.     EntityList<IEntity> list = op.FindAll();  
  27.     //DataSet ds = list.ToDataSet();  
  28.     // 输出数据  
  29.     foreach (IEntity entity in list)  
  30.     {  
  31.         foreach (FieldItem item in op.Fields)  
  32.         {  
  33.             if (item.Name.StartsWith("F")) break;  
  34.  
  35.             Console.Write("{0}\t", entity[item.Name]);  
  36.         }  
  37.         Console.WriteLine();  
  38.     }  

小结:XCode读取Excel数据并适用于任何数据库的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 博客园
相关推荐

2020-07-27 08:19:11

开发工具数据库

2020-06-04 08:11:56

数据库开发SQL Server数据库

2009-08-11 14:51:47

C#读取Excel中数

2019-09-17 08:47:42

DBA数据库SQL工具

2024-01-08 08:06:50

2023-09-03 12:52:17

2022-05-23 10:26:26

数据库分布式

2022-12-08 13:00:10

AI性别偏见

2020-03-13 10:46:35

数据分析商业智能BI

2010-08-26 16:34:12

DB2Excel读取

2022-11-29 08:45:44

Vue 3UI 组件库

2019-10-22 11:11:16

大数据工具容器

2020-10-10 09:19:58

JavaScript开发技术

2011-02-25 09:08:22

LinuxSuSE Linux

2021-11-04 10:42:43

汽车软件技术

2022-09-02 17:47:46

Linux笔记应用

2021-08-30 09:00:00

人工智能计算机视觉机器学习

2019-04-23 15:54:04

物联网数据可视化IOT

2023-12-14 17:21:29

点赞
收藏

51CTO技术栈公众号