У меня есть таблица данных, которая заполнена, как показано ниже.Тип данных, как правило, содержит несколько одинаковых «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);
}
}