ASPの解決方法NET新規時マルチフィールド値の問題

2787 ワード

ASP.NET開発者は、新しいページのフィールドが多すぎて、保存をクリックするときに1つ1つの付与エンティティまたはSQL文を構築して保存する必要があるという状況によく遭遇します.これにより、体力を浪費するだけでなく、テキスト行のコントロールを大量に消費してコードを書く必要があります.構想を経て、より便利な方法で解決することができますか?コードの集約性を向上させる.
 1.構想
一般的に新しいページが最も多いのは、ユーザーにコンテンツを入力させ、保存ボタンをクリックしてコミットしてデータベースにデータを永続化することです.
コミットをクリックするとき、従来の方法は、テキストボックスの読み取り割り当てです.
HTMLコードは次のとおりです.

 
 

按钮提交事件代码:


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 entityDic = new Dictionary();       
   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;    
  }  
} 

これにより、新しいコードや編集時にページのフィールドが多すぎるという問題を、少ないコードで解決することができます.
2.需要の更なる変化に対応する
ページのフィールドが追加されたり、減少したりしたら、ボタンのイベントをコミットする必要はなく、ページに対応するディスプレイコントロールを追加または削除すればいいのです.
例えばページにはTextBoxコントロールが5つありますが、私たちがページにTextBoxコントロールを1つ多く書く必要がある場合は、IDを自分の過密なテキストに書くだけでOKです.
以上、ASPをどう解決するかを皆さんと共有しました.NET新規時マルチフィールドの値取り問題の方法は、よく読んで、自分の勉強に活用してほしい.