【解決方法】データセットとエンティティの間でC#WPFのデータグリッドを介してデータベースと通信する最良の方法は何ですか?


私は C# WPF を使用しています。SQL Server データベースを使用して会計プログラムをプログラミングしています。この会計プログラムでは、テキスト ボックスとコンボボックス要素を含むデータ グリッドで、ユーザーがデータを直接挿入、更新、および削除します。

私が非常に混乱した問題では、データベースに接続してデータ グリッドを介してデータを格納する方法として、どの方法が優れていますか?

私が試したこと:

次のような DataSet と TableAdapter を使用した ADO.NET :

C#
private void LoadData()
   {
       nOTELBOOKDBDataSet = ((SIMPLE_MVVM.NOTELBOOKDBDataSet)(this.FindResource("nOTELBOOKDBDataSet")));
       // Load data into the table PERSONEL. You can modify this code as needed.
       nOTELBOOKDBDataSetPERSONELTableAdapter = new SIMPLE_MVVM.NOTELBOOKDBDataSetTableAdapters.PERSONELTableAdapter();
       nOTELBOOKDBDataSetPERSONELTableAdapter.Fill(nOTELBOOKDBDataSet.PERSONEL);
       System.Windows.Data.CollectionViewSource pERSONELViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("pERSONELViewSource")));
       pERSONELViewSource.View.MoveCurrentToFirst();
   }
   void SaveData()
   {
       NOTELBOOKDBDataSet changes = (NOTELBOOKDBDataSet)nOTELBOOKDBDataSet.GetChanges();
       if (changes != null)
       {
           //Data has changes.
           //use update method in the adapter. it should update your datasource
           int updatedRows = nOTELBOOKDBDataSetPERSONELTableAdapter.Update(changes);
           nOTELBOOKDBDataSet.AcceptChanges();
       }
   }

2 番目のケース:

C#
public void LoadData()
   {
       using (DataModeling.Entities dbms = new DataModeling.Entities())
       {
           var RES = dbms.Database.SqlQuery<HUMANS_TBMODEL>("SELECT ID,NAME,TEL,REMARKS FROM PERSONEL").ToList();
           foreach (var item in RES)
           {
               MY_ALL_HUMANS.Add(item);
           }
       }
   }

最善かつ最も簡単な方法を教えてください。

解決策 1

DataGrid にバインドされたデータ モデルとのデータ バインディング。 EntityFramework または Dapr は、よりクリーンでシンプルなデータベース フレームワークです。 両方を行う方法を説明する Google 検索可能なチュートリアルがたくさんあります。

コメント

タイトルとURLをコピーしました