問題をできるだけ単純化するように努めます。
私の英語をコメントして訂正してください。あなたが私を理解できることを願っています。
私の主な質問は 、データセット内のテーブルを他のテーブルのデータに関連する行のみで埋める、簡単で「自動化された」方法はありますか?
たとえば、次のスキーマを持つデータベースがあるとします。
今、私はテーブル「Orders」で同じことを作成し、カスタムメソッド「FillByDate」を作成しようとしています。動作しますが、小さな問題があります。
DataSet1 myDataSetInstance = new DataSet1();
DataSet1TableAdapters.OrdersTableAdapter OrdersTA = new DataSet1TableAdapters.OrdersTableAdapter();
OrdersTA.FillByDate(myDataSetInstance.Orders, new DateTime(2013, 1,1), DateTime.Now);
foreach (var row in myDataSetInstance.Orders)
{
MessageBox.Show(row.Comments); // OK
MessageBox.Show(row.CustomersRow.Name); //NULL
}
Customersテーブルから関連する行を取得することは不可能です。最初に、そのテーブルに手動で入力する必要があります。私はこれを行うための2つの方法を見ることができます
- このテーブルのコンテンツ全体を取得します-しかし、それは多くの不要なデータになります
- TableAdapterにカスタムクエリを作成します(FillByOrdersByDate(@ Date1、@ Date2)など)。テーブルが2つとリレーションが1つしかない場合は簡単ですが、テーブルが多いと、TableAdapterごとに数十のカスタムクエリが必要になります。
これを行うには「より良い」方法が必要だと私は本当に信じています。