91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

動態多字段導出解決方案

發布時間: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

江孜县| 思茅市| 南宫市| 金门县| 博乐市| 嘉禾县| 辽宁省| 蕉岭县| 万山特区| 鞍山市| 敖汉旗| 法库县| 四平市| 策勒县| 桃江县| 泰来县| 蓬溪县| 民权县| 凉城县| 许昌县| 乌苏市| 本溪市| 阳江市| 日照市| 合阳县| 石楼县| 闻喜县| 平顶山市| 新巴尔虎左旗| 揭西县| 江达县| 武夷山市| 丹寨县| 皮山县| 柏乡县| 临安市| 新余市| 鄂州市| 嘉禾县| 洪泽县| 乌苏市|