2011-08-16 15 views
3

私は3層アプリケーションを使用しています。私はデータアクセス層とビジネス層を作成しました。どのように私はビュー層で私のDatagridとこれをバインドできますか?C#Winform Datagrid CRUD

public partial class Magasinier : Form 
{ 
    Magasinier_BL oMag_BL = new Magasinier_BL(); 

    public Magasinier() 
    { 
     InitializeComponent(); 
     GetDataOrdre(); 
    } 

    public void GetDataOrdre() 
    {    
     dataGridView_Mag.DataSource = oMag_BL.Get_All_Magasinier_BL(); 
     dataGridView_Mag.DataMember = "MagTable"; 
    } 


} 

    private void Del_Mag(object sender, DataGridViewRowCancelEventArgs e) 
    { 
     if (!e.Row.IsNewRow) 
     { 
      DialogResult res = MessageBox.Show("Etes-vous sûr de vouloir supprimer cette ligne ?", "confirmation suppression", 
        MessageBoxButtons.YesNo, MessageBoxIcon.Question); 
      if (res == DialogResult.No) 
      { 
       e.Cancel = true; 
      } 
      else 
      { 
       oMag_BL.DelMag_BL(e.Row.Cells["CODE_MAG"].Value.ToString()); 
      } 

     } 
    } 

私は読み取りと削除を行いましたが、作成と更新は行いませんでした。

どうすればこれらの作成と更新を自分のbusinnesレイヤーに配線できますか。新しい行値またはCHANGE行値を取得するにはどうすればよいですか。

私はASP.NETでやったこれら:今、私はWinフォームでのことを行うことができますどのように

protected void Updting_Obj_ClientMag(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) 
{ 
    Pers_Magasinier oPersMag = new Pers_Magasinier(); 
    oPersMag.NoClient = Id; 
    oPersMag.CodeMag = e.NewValues["CODE_MAG"].ToString(); 
    oPersMag.NomUsr = e.NewValues["NOM"].ToString(); 
    oPersMag.PrenomUsr = e.NewValues["PRENOM"].ToString(); 
    oPersMag.MemoMag = e.NewValues["MEMO"].ToString(); 

    oMag_BL.InstUpdtMag_BL(oPersMag, false);  

    ASPxGridView_Mag.CancelEdit(); 
    e.Cancel = true; 
    GetDataMags(); 
} 

protected void Insrting_Obj_ClientMag(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) 
{ 
    Pers_Magasinier oPersMag = new Pers_Magasinier(); 
    oPersMag.NoClient = Id; 
    oPersMag.CodeMag = e.NewValues["CODE_MAG"].ToString(); 
    oPersMag.NomUsr = e.NewValues["NOM"].ToString(); 
    oPersMag.PrenomUsr = e.NewValues["PRENOM"].ToString(); 
    oPersMag.MemoMag = e.NewValues["MEMO"].ToString(); 

    oMag_BL.InstUpdtMag_BL(oPersMag, true);  

    //To Stop processing Gridview 
    ASPxGridView_Mag.CancelEdit(); 
    e.Cancel = true; 

    //Rebind donne 
    GetDataMags(); 
} 

とアップデートを作成しますか?あなたが事前に

答えて

1

更新

ありがとう:ワーキング作成/更新取得するには 、あなたは通常、(基本的にあなたが余分な検証を行うと、既存の値を更新/作成することができます別のWinフォームである)グリッドRowEditTemplateコントロールを使用します。 Infragisticsがいいです。

  1. あなたのコレクション内の項目を更新するとき、それは自動的にグリッドに
  2. に更新されますように、あなたはまた、/あなたてBusinessObjectを確認する必要があります、あなたのグリッドでのBindingSourceを使用していることを確認する必要がありますDomainModel/CollectionItemはINotifyPropertyChangedを実装しているため、ビジネスレイヤ内の値を更新するとグリッドで自動的に更新されます。
  3. [作成/更新]ボタンをクリックすると、既存の値が読み込まれます)を行編集テンプレートコントロールに追加
  4. 作成が成功するとCreate create新しいBusinessObjectを作成し、これをコレクションに追加しました。コレクションがグリッドにバインドされると、グリッドは自動的にリフレッシュされます。あなたは同じ参照は、コレクション内のオブジェクトの更新場合は、アップデートを提出すると同じ
  5. は、任意の更新は、グリッドに反映されるはずです

あなたはASPとないのWinFormsについて話しているので、あなたが、あなたのタグを修正する必要がある場合があります。

私はASP MVC 2 atmでTelerikのグリッドを使用しています。あなたのデータをViewModelにシリアライズして、コントローラでViewModelを使って作業するのを助けます(ほとんどの場合、Request.Paramsを使いこなす必要はありません)。

See Telerik Gridと あなたの応答のためのASP MVC

+0

おかげであなたを。私はASP.NETプログラマーですが、今はWinformもやっています。どのように私はCreate&Update ASP.NETコードをWinformに変換できますか? – user609511

+0

ご回答いただきありがとうございます。ご紹介ありますか? – user609511

+0

私はそれを手にしていません。 BindingSourceに関する情報と、Gridでの使用方法 –