0

我有一个SettlementCurrentTableAdapter有关系的 tableadapter ( )。父表是 ( SettlementCurrent) 子表是 ( Trips)。

我需要对 ( ) 中的每一行 ( tripLoadedMiles)求和Trips并在标签 ( ) 中显示总数labelWelcomeSetTotalMiles

我想在代码中而不是 sql 中执行此操作,因为我使用此 tableadapter 来显示其他标签。

有人可以帮我解决这个问题。我是 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 上的表格适配器概述,并点击相关链接和文章了解此对象的基本用法。如果你要发布你的表结构,理论上我可以给你一些代码,但我不愿意这样做 - 你将不得不使用这个对象,这就是你与数据库交谈的方式,所以您必须了解它的功能。

您在本次学习中的目标是弄清楚如何从您的表格适配器中获取所有里程数据。为此,您通常一次遍历一行,然后挑选出您想要将它们添加到更符合 C# 惯用数据结构的值,例如 aa List/IEnumerable或 an Array

在这些结构之一中获得所需的数据后,您可以使用 LINQ 获得所有内容的总和。根据您拉出的数量,它可以像一个电话一样简单(如果这类似于 an Arrayof ints):

var totalMiles = tripLoadedMiles.Sum();

或者根据您的需要进行详细说明(如果这是List一个自定义对象,它同时具有SettlementCurrentIdMiles,都存储为ints):

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 回答