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

首頁 > 編程 > .NET > 正文

如何解決ASP.NET新增時多字段取值的問題

2024-07-10 12:47:47
字體:
來源:轉載
供稿:網友

ASP.NET 開發人員在卡發時經常會碰到一個情況,就是新增的頁面中字段太多,在點擊保存的時候需要一個一個的賦值實體或者構建SQL語句去保存。這樣不僅浪費體力還需要占用大量的文本行控件去寫代碼。經過構思是否可以使用一種更方便的辦法去解決呢?提高代碼的內聚性。

 1.思路

 我們知道一般新增頁面最多的就是一大堆文本框讓用戶輸入內容,然后點擊保存按鈕進行提交將數據持久化到數據庫。

在點擊提交的時候傳統方式就是一個一個文本框的讀取賦值。

 HTML代碼如下:

<asp:TextBox ID="TextBox2" runat="server" Text="TextBox2" ></asp:TextBox> <asp:TextBox ID="TextBox3" runat="server" Text="TextBox3" ></asp:TextBox> <asp:Button ID="Button2" runat="server" Text="提交" onclick="Button2_Click" /> 

按鈕提交事件代碼:

protected void Button2_Click(object sender, EventArgs e) {         string colName1 = TextBox2.Text;  string colName2 = TextBox3.Text;         DataSave(colName1,colName2); } 

如果頁面的字段特別多就會導致需要些很多的賦值語句。所以在多字段的情況下我們可以去遍歷頁面上的控件去賦值,然后將結果放入集合中去提交持久化數據。

按鈕提交時間代碼:

protected void Button2_Click(object sender, EventArgs e)  {          Dictionary<string, string> entityDic = new Dictionary<string, string>();          foreach (Control cnl in MyPanel.Controls)          {               if (cnl is TextBox)               {                  TextBox tb = (cnl as TextBox);                  entityDic.Add(tb.GetMapColumnsName(), tb.Text);               }          }           IDBHelper dbHelp = DataBaseProvider.Instance.GetDBHelper("orm");          string result = dbHelp.DataSave(entityDic);     } 

分析一下代碼:

1.首先定義一個字典集合用來存放字段文本框中的值,key 存列明,value存實際輸入的值

 2. 循環遍歷容器中的控件,給集合添加節點,key為控件的ID也就是數據庫的列明,value是實際輸入的值,也就是需要新增到數據庫的值

3.調用保存方法保存數據

問題:

這個時候可能有人會問了,將頁面上的控件名字跟數據庫的字段名如果保持一致是不是太不安全啦?解決這個問題的辦法,就是將數據庫字段一自己自定義的一種算法加密顯示在頁面,在封裝一個TextBox的擴展方法,這個方法用來解析這個算法,返回正確的列明,代碼如下:

public static class TextBoxEx {      public static string GetMapColumnsName(this TextBox my)      {         string myColumnsName = my.ID;         //將來文本ID可以為了安全存為加密過的值 這里可以負責解密         return myColumnsName;      }  }             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枣庄市| 炉霍县| 永昌县| 武冈市| 巢湖市| 云梦县| 常宁市| 绩溪县| 武山县| 隆尧县| 凤山市| 建瓯市| 巫山县| 安泽县| 五河县| 法库县| 昭通市| 五家渠市| 榆中县| 广安市| 陆川县| 遂川县| 伊宁市| 社旗县| 葵青区| 顺昌县| 盐源县| 泽普县| 肃北| 嘉峪关市| 库车县| 万盛区| 永兴县| 旺苍县| 江津市| 新蔡县| 阿合奇县| 仙桃市| 叶城县| 新民市| 如东县|