国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

信息系統的快速開發(3)數據信息的提取

2024-07-21 02:19:12
字體:
來源:轉載
供稿:網友
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 為了保持整個系統有足夠的擴展和足夠的彈性(能夠滿足災webform和winform中的使用,以及其他數據庫更新的來源,比如說office 2003中infopath,以及webservice等等),我將整個dbform的構架拆分為forminfo類和sqlbuilder兩個基類,下面分別描述forminfo類和sqlbuilder類的作用以及申明



    forminfo主要負責整個數據庫field信息的抓取,主要包括了以下兩個方法:

    /// 添加將要進行遍歷的容器、

    public virtual void appendcontainer(object acontainer)

    /// 添加單個控件

    public virtual void appendcontrol(object acontrol)

    /// 清除先前已經配置好的form信息

    public void clearforminfo()

    主要提供了兩個虛方法,一個公開的clearforminfo方法,從方法名稱上面的含義大家看得很清楚了,整個forminfo可以根據容器和單獨的控件進行添加,在這里,我有必要說明一下我的dbform架構中針對winform和webform的擴展,因為下面的winforminfo類和webforminfo類分別繼承自forminfo,實現winform和webform的信息提取

    再winforminfo和webforminfo中,主要是一個針對container的循環,以及通過重寫appendcontainer實現

    /// 添加將要進行遍歷的容器

    public override void appendcontainer(object acontainer)

    {

    system.web.ui.control container = (system.web.ui.control)acontainer;

    foreach(control acontrol in container.controls)

    {

    this.doappendcontrol(acontrol);

    }

    }

    在下面的webqueryform和webmodifyform中,就是實現具體的form信息提取了。為什么要用這么多類的繼承呢?我覺得這樣的視線,主要有以下幾點好處

    1. forminfo類主要提供最公開的接口,以及一些基礎的方法(提供了一個protected的方法,用于將分析出的form信息填充入forminfoentity中(窗體信息的描述類)

    2. winforminfo和webforminfo類主要是把容器object轉換成為具體的wincontrl和webcontrol,并且調用相應的控件信息解析器,實現數據的提取。

    3. 接下來的modifyforminfo和queryforminfo主要就提供了控件的信息解析器具體實現,根據具體的控件和具體的任務(modify呢還是query)分別解析出控件的信息,比如說queryforminfo中需要加入相關操作符號的信息(like,=等等)

    下面是具體控件的添加操作

    private void doappendcontrol(system.web.ui.control acontrol)

    {

    if (acontrol is smisnet.webcontrol.smisdropdown)

    {

    this.doappenddropdownlist(acontrol as smisnet.webcontrol.smisdropdown);

    }

    else if (acontrol is system.web.ui.webcontrols.textbox)

    {

    this.doappendtextbox(acontrol as smisnet.webcontrol.smistextbox);

    }

    else if (acontrol is system.web.ui.webcontrols.listbox)

    {

    this.doappendlistbox((system.web.ui.webcontrols.listbox)acontrol);

    }

    }

    其實這部分代碼寫得并不算優美,包括doappenddropdownlist等方法都寫成了虛方法,有不少代碼的臭味到。其實不應該這樣的,只是因為我們現在的工作比較簡單(只有這三種窗體,不過我想包括了大多數信息系統開發的情況)如果您使用了其他的控件,可以考慮修改acontrol is xxx,然后天加上自己的控件的處理方法,forminfo就支持了新的控件的解析。
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 横峰县| 祁门县| 苍梧县| 大埔区| 海口市| 凌源市| 黄骅市| 揭西县| 余姚市| 伊吾县| 兴隆县| 丰台区| 翁牛特旗| 班玛县| 彰化县| 垫江县| 鱼台县| 延川县| 双峰县| 滦平县| 义乌市| 陇西县| 上杭县| 镇原县| 剑河县| 南宫市| 北安市| 修武县| 鹿邑县| 永修县| 赤城县| 克拉玛依市| 和平区| 佛学| 留坝县| 白城市| 三亚市| 忻城县| 马边| 乌兰县| 徐闻县|