• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

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

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

        更新時間:2022-04-27 文章作者:未知 信息來源:網絡 閱讀次數:

        為了保持整個系統有足夠的擴展和足夠的彈性(能夠滿足災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就支持了新的控

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 久久精品a一国产成人免费网站| 人妻无码一区二区三区免费 | 久久亚洲2019中文字幕| 激情吃奶吻胸免费视频xxxx| 日韩高清在线免费观看| 亚洲成人免费在线| 亚洲精品国产精品乱码不卡√ | 黄网站色视频免费看无下截| 又粗又硬免费毛片| 免费一级毛suv好看的国产网站 | 亚洲爆乳少妇无码激情| 浮力影院第一页小视频国产在线观看免费 | 国产99久久久久久免费看| 中文字幕专区在线亚洲| 中国一级特黄的片子免费| 亚洲AV福利天堂一区二区三| 永久看日本大片免费35分钟| 亚洲人成高清在线播放| 成人免费视频国产| WWW国产成人免费观看视频| 亚洲国产精品无码av| 免费人成大片在线观看播放电影| 亚洲第一成人影院| 日韩成人免费视频| 亚洲一区二区三区丝袜| 亚洲国产成人精品久久久国产成人一区二区三区综 | 无码日韩精品一区二区免费暖暖 | 国产成人精品亚洲| 久久精品国产亚洲麻豆| 在线看免费观看AV深夜影院| 亚洲精品久久久久无码AV片软件| 亚洲AV无码一区二三区| 真实国产乱子伦精品免费| 亚洲а∨精品天堂在线| 亚洲A∨无码无在线观看| 欧美日韩国产免费一区二区三区| 免费在线观看一区| 亚洲美女人黄网成人女| 免费很黄很色裸乳在线观看| 少妇太爽了在线观看免费视频 | 亚洲免费精彩视频在线观看|