0

リレーションを持つ tableadapter ( SettlementCurrentTableAdapter) があります。親テーブルは ( SettlementCurrent) 子テーブルは ( Trips) です。

各行 ( tripLoadedMiles) を ( Trips) で合計し、合計をラベル ( labelWelcomeSetTotalMiles) に表示する必要があります。

このtableadapterを使用して他のラベルを表示するので、SQLではなくコードでこれを行いたいと思います。

誰かがこれを理解するのを手伝ってくれますか? 私はC#が初めてで、Visual C#を使用しています。

        this.settlementCurrentTableAdapter.Fill(this.myLeaseDataSet.SettlementCurrent);
        MyLeaseDataSet.SettlementCurrentRow settlementCurrent;
        settlementCurrent = myLeaseDataSet.SettlementCurrent.Last();

        var settlementCurrentID = settlementCurrent.setID;

        this.tripsTableAdapter.FillByTripSetID(this.myLeaseDataSet.Trips, settlementCurrentID);
        MyLeaseDataSet.TripsDataTable settlementTrips;
        settlementTrips = myLeaseDataSet.Trips;
        foreach (DataRow row in myLeaseDataSet.Trips.Rows) 
        {

            NOT SURE ON THE CODE HERE

        }
4

1 に答える 1

0

最初のステップは、必要なデータをデータ アダプターから抽出することです。あなたの質問にはテーブル モデルが含まれていないため、MSDN のテーブル アダプターの概要を参照し、関連するリンクと記事をクリックして、このオブジェクトの基本的な使用法を理解することをお勧めします。テーブル構造を投稿する場合、理論的にはそのためのコードを提供できますが、そうするのは気が進まないので、このオブジェクトを操作する必要があります。多くの場合、データベースとの対話方法です。それがどのように機能するかを学ぶことが不可欠です。

この学習の目標は、テーブル アダプターからすべてのマイル数を取得する方法を理解することです。これは通常、一度に 1 行ずつ調べて、aa List/IEnumerableや anなどのより C# の慣用的なデータ構造に追加する値を選択することによって行いますArray

これらの構造のいずれかに必要なデータを取得したら、LINQ を使用してすべての合計を取得できます。引き出した量に応じて、1 回の呼び出しと同じくらい簡単になります (これがArrayof のようなものである場合ints)。

var totalMiles = tripLoadedMiles.Sum();

または、必要に応じて精巧に (これが と の両方をList持つカスタム オブジェクトの である場合、両方とも として保存されます):SettlementCurrentIdMilesint

var totalMiles = tripLoadedMiles.Select(x => x.SettlementCurrentId == someRandomRequiredSettlement).Sum(y => y.Miles);

あなたが物事を使用している方法で、これはあなたがこの状況でそれを合計する方法を見ている方法です.

    var total = 0;
    foreach (DataRow row in myLeaseDataSet.Trips.Rows) 
    {

        total += int.Parse(row["tripTotalMiles"].ToString());
    }
    // Use the total
于 2012-11-06T22:04:46.810 に答える