自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

XCode讀取Excel數(shù)據(jù)并適用于任何數(shù)據(jù)庫

移動開發(fā) iOS
本文介紹的時XCode讀取Excel數(shù)據(jù)并適用于任何數(shù)據(jù)庫,詳細(xì)的介紹了Xcode讀取Excel數(shù)據(jù)庫的內(nèi)容,先來看詳細(xì)內(nèi)容。

XCode讀取Excel數(shù)據(jù)并適用于任何數(shù)據(jù)庫是本文要介紹的內(nèi)容,不多說,直接進(jìn)入話題。雖然是充血模型,雖然是強(qiáng)類型,XCode同樣支持遍歷任何數(shù)據(jù)庫結(jié)構(gòu),并以強(qiáng)類型(相對于DataSet等字典訪問)方式讀取數(shù)據(jù)。

要遍歷數(shù)據(jù)庫結(jié)構(gòu)是很容易的事情,絕大多數(shù)Orm都支持。

但是在沒有實(shí)體類的情況下以強(qiáng)類型方式讀取數(shù)據(jù),就稍微有些復(fù)雜。XCode的原理是為每張表動態(tài)創(chuàng)建繼承自Entity<>的實(shí)體類,然后通過接口來操作實(shí)體類。

代碼中有了快速反射,雖然沒有性能損耗,但是用起來挺別扭的,這里說明了XCode對于實(shí)體類元數(shù)據(jù)的動態(tài)訪問支持還不夠。

  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.     // 創(chuàng)建一個實(shí)體操作者,這里會為數(shù)據(jù)表動態(tài)生成一個實(shí)體類,并使用CodeDom編譯  
  9.     IEntityOperate op = dal.CreateOperate(table.Name.Replace("$", null));  
  10.     // 因?yàn)閯討B(tài)生成代碼的缺陷,表名中的$已經(jīng)被去掉,并且Excel的查詢總必須給表名加上方括號,還是因?yàn)橛?  
  11.     // 下面通過快速反射設(shè)置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.     // 查找所有數(shù)據(jù)  
  26.     EntityList<IEntity> list = op.FindAll();  
  27.     //DataSet ds = list.ToDataSet();  
  28.     // 輸出數(shù)據(jù)  
  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.     }  

小結(jié):XCode讀取Excel數(shù)據(jù)并適用于任何數(shù)據(jù)庫的內(nèi)容介紹完了,希望本文對你有所幫助!

責(zé)任編輯:zhaolei 來源: 博客園
相關(guān)推薦

2020-07-27 08:19:11

開發(fā)工具數(shù)據(jù)庫

2020-06-04 08:11:56

數(shù)據(jù)庫開發(fā)SQL Server數(shù)據(jù)庫

2024-01-08 08:06:50

2019-09-17 08:47:42

DBA數(shù)據(jù)庫SQL工具

2009-08-11 14:51:47

C#讀取Excel中數(shù)

2023-09-03 12:52:17

2022-05-23 10:26:26

數(shù)據(jù)庫分布式

2022-12-08 13:00:10

AI性別偏見

2020-03-13 10:46:35

數(shù)據(jù)分析商業(yè)智能BI

2019-10-22 11:11:16

大數(shù)據(jù)工具容器

2010-08-26 16:34:12

DB2Excel讀取

2022-11-29 08:45:44

Vue 3UI 組件庫

2020-10-10 09:19:58

JavaScript開發(fā)技術(shù)

2021-08-30 09:00:00

人工智能計算機(jī)視覺機(jī)器學(xué)習(xí)

2019-04-23 15:54:04

物聯(lián)網(wǎng)數(shù)據(jù)可視化IOT

2023-12-14 17:21:29

2022-09-02 17:47:46

Linux筆記應(yīng)用

2011-02-25 09:08:22

LinuxSuSE Linux

2021-11-04 10:42:43

汽車軟件技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號