DataTable GroupBy и проверить состояние - PullRequest
1 голос
/ 09 марта 2019

У меня есть таблица данных, которая заполнена, как показано ниже.Тип данных, как правило, содержит несколько одинаковых «UnitNr».

Когда я группирую данные, я пытаюсь добиться поведения, которое проверяет, имело ли место конкретное «событие» для этого конкретного «UnitNr».Например, (таким образом, он отфильтрует «UnitNr», где событие = «1-й взнос»)

Когда данные могут быть отфильтрованы от любых нежелательных данных, данные должны перейти в новый объект данных, который будет связан сgridview.

public static void GetNextPayments(RadGridView Grid)
{
    DataTable dt;
    using (MySqlConnection con = new MySqlConnection(Varribles.ConString))
    {
        con.Open();
        string query = "SELECT Date, ClientID, Event, FirstInstallment, SecondInstallment, UnitNr, FirstInstallmentPayDate, SecondInstallmentPayDate FROM Customers WHERE Approved = 'Approved';";
        using (MySqlDataAdapter adapter = new MySqlDataAdapter(query, con))
        {
            DataSet ds = new DataSet();
            adapter.Fill(ds);
            dt = ds.Tables[0];
            adapter.Dispose();
        }
        con.Dispose();
        con.Close();
    }
    test(dt);
}

Теперь я группирую данные, как показано ниже.

ОБНОВЛЕНИЕ - Ниже было изменено

Код ниже по-прежнему возвращает значениягде 1-й взнос.Ведьма не должна

 private static void test(DataTable dt)
    {
        var groups = dt.AsEnumerable()
.GroupBy(x => x.Field<string>("UnitNr"))
.Where(grp => grp.Any(x => x.Field<string>("Event") != "1st installment" && x.Field<string>("Event") == "Deposit"));

        foreach (var group in groups)
        {
            Console.WriteLine(group.Key);

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...