亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

動態多字段導出解決方案

發布時間:2020-07-02 05:33:34 來源:網絡 閱讀:339 作者:范忠華 欄目:編程語言

一、問題來源

1.1問題現象

動態多字段導出內存溢出

 

1.2問題分析

從問題的現象中找不到問題出現根源,需要通過捕獲異常來分析問題具體出在那


通過不同參數導出測試,發現30個以內的列名導出沒有問題,超過其上限在datatable給控鍵(原來用aspose控件)賦值中就拋出了異常。當初以為是控件問題,就嘗試用NOPI控件,但是問題依然存在。由此可見內存溢出很大原因是來自要到導出的列名太多(73個字段),讀取datatable的值時導致了內存溢出,需要用另一種方式來替換通過讀取datatable賦值的方式來實現給導出控件賦值。

 

 

二、解決方法

找到了導致問題出現的最大可能,接下來就是如何去解決。如果每次都是全部導出,這個問題好解決,直接通過foreach逐行讀取對象集合給控件賦值就ok了,問題是需要按照客戶選定的列名動態導出,找出需要導出的字段與其對象屬性的對應關系是解決問題的關鍵所在。當時嘗試用了通過xml配置文件找到它們對應關系,但并未能實現,原因是動態控制難實現。有時候思路錯了,思考的方向錯了,問題會越陷越深,出現無頭緒的狀態。在這個時候我們應該跳出來,重新去審視這個問題,用另一種方法去解決。通過重新審視問題,發現要建立關系,表頭必須是要存放在二維的表中,只要建立一張基礎關系數據表,用來對象給導出控件賦值遍歷識別是否是用戶選中的列名。這基礎數據表要求數據全即涵蓋全部的導出字段,且每個字段需有一個對應的固定的標記空間用來標記用戶是否選中這個字段。動態表頭存放在datatable中,沒有處理的表頭數據與基礎關系表的表頭一致,再通過轉過來列名進行篩選,保證數據的一致性。在此之前需要給這73個列名固定的順序(按照客戶需求的排序)。從而得出解決方案,如下圖


附件:http://down.51cto.com/data/2365315
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

进贤县| 南郑县| 胶州市| 准格尔旗| 新密市| 开远市| 游戏| 本溪| 兴仁县| 楚雄市| 太和县| 长宁区| 夏津县| 安平县| 信宜市| 大安市| 图片| 罗山县| 托克托县| 金塔县| 延吉市| 龙胜| 莫力| 中江县| 阳春市| 临朐县| 北流市| 即墨市| 景东| 武鸣县| 太湖县| 铁岭县| 张家口市| 佛坪县| 河间市| 阳新县| 清徐县| 平和县| 综艺| 安顺市| 紫云|