/// <summary> /// SELECT * FROM Emps Job = "Frontend programmer" AND Salary>1000 ORDER BY Ename DESC; /// </summary> private void Przyklad2Button_Click(object sender, EventArgs e) { var res = (from emp in Emps where emp.Job == "Frontend programmer" && emp.Salary > 1000 orderby emp.Ename descending select new { Nazwisko = emp.Ename, Zarobki = emp.Salary }).ToList(); //------------------------------------- var res2 = Emps .Where((emp, indx) => emp.Job == "Frontend programmer" && emp.Salary > 1000) .OrderByDescending(emp => emp.Ename) .Select(emp => new { Nazwisko = emp.Ename, Zarobki = emp.Salary }).ToList(); WynikTextBox.Clear(); ResultsDataGridView.DataSource = res2.ToList(); }
/// <summary> /// SELECT MAX(Salary) FROM Emps; /// </summary> private void Przyklad3Button_Click(object sender, EventArgs e) { var res2 = Emps.Max(emp => emp.Salary); WynikTextBox.Clear(); WynikTextBox.AppendText(res2.ToString()); ResultsDataGridView.DataSource = null; }
//Znajdź pracownika z najwyższą pensją wykorzystując metodę Aggregate() private void Przyklad11Button_Click(object sender, EventArgs e) { var result = Emps .Aggregate((e1, e2) => e1.Salary > e2.Salary ? e2 : e1) .ToString(); WynikTextBox.Clear(); WynikTextBox.AppendText(result); ResultsDataGridView.DataSource = null; }
/// <summary> /// Zwróć wartość "true" jeśli choć jeden /// z elementów kolekcji pracuje jako "Backend programmer". /// </summary> private void Przyklad8Button_Click(object sender, EventArgs e) { var result = Emps .Any(emp => emp.Job == "Backend programmer") .ToString(); WynikTextBox.Clear(); WynikTextBox.AppendText(result); ResultsDataGridView.DataSource = null; }
//Z pomocą języka LINQ i metody SelectMany wykonaj złączenie //typu CROSS JOIN private void Przyklad12Button_Click(object sender, EventArgs e) { var result = Emps .SelectMany(emp => Depts, (emp, dept) => new { emp.Ename, dept.Dname }) .ToList(); WynikTextBox.Clear(); ResultsDataGridView.DataSource = result; }
/// <summary> /// SELECT Job AS Praca, COUNT(1) LiczbaPracownikow FROM Emps GROUP BY Job; /// </summary> private void Przyklad7Button_Click(object sender, EventArgs e) { var result = Emps .GroupBy(emp => emp.Job) .Select(emp => new { Praca = emp.Key, LiczbaPracownikow = emp.Count() }).ToList(); WynikTextBox.Clear(); ResultsDataGridView.DataSource = result; }
/// <summary> /// SELECT ename AS Nazwisko, job AS Praca FROM Emps; /// </summary> private void Przyklad5Button_Click(object sender, EventArgs e) { var result = Emps .OrderByDescending(emp => emp.Ename) .Select(emp => new { Nazwisko = emp.Ename, Praca = emp.Job }).ToList(); WynikTextBox.Clear(); ResultsDataGridView.DataSource = result; }
/// <summary> /// SELECT TOP 1 * FROM Emp WHERE Job="Frontend programmer" /// ORDER BY HireDate DESC; /// </summary> private void Przyklad9Button_Click(object sender, EventArgs e) { var result = Emps .Where(emp => emp.Job == "Frontend programmer") .OrderByDescending(emp => emp.HireDate) .Select(emp => emp) .FirstOrDefault() .ToString(); WynikTextBox.Clear(); WynikTextBox.AppendText(result); ResultsDataGridView.DataSource = null; }
/// <summary> /// SELECT Emps.Ename, Emps.Job, Depts.Dname FROM Emps /// INNER JOIN Depts ON Emps.Deptno=Depts.Deptno /// Rezultat: Złączenie kolekcji Emps i Depts. /// </summary> private void Przyklad6Button_Click(object sender, EventArgs e) { var result = Emps .Join(Depts, emp => emp.Deptno, dept => dept.Deptno, (emp, dept) => new { emp.Ename, emp.Job, dept.Dname }).ToList(); WynikTextBox.Clear(); ResultsDataGridView.DataSource = result; }
/* * Celem ćwiczenia jest uzupełnienie poniższych metod. * Każda metoda powinna zawierać kod C#, który z pomocą LINQ'a będzie realizować * zapytania opisane za pomocą SQL'a. * Rezultat zapytania powinien zostać wyświetlony za pomocą kontrolki DataGrid. * W tym celu końcowy wynik należy rzutować do Listy (metoda ToList()). * Jeśli dane zapytanie zwraca pojedynczy wynik możemy je wyświetlić w kontrolce * TextBox WynikTextBox. */ /// <summary> /// SELECT * FROM Emps WHERE Job = "Backend programmer"; /// </summary> private void Przyklad1Button_Click(object sender, EventArgs e) { //1. Query syntax (SQL) var res = (from emp in Emps where emp.Job == "Backend programmer" select new { Nazwisko = emp.Ename, Zawod = emp.Job }).ToList(); //2. Lambda and Extension methods var res2 = Emps.Where(emp => emp.Job == "Backend programmer").ToList(); WynikTextBox.Clear(); ResultsDataGridView.DataSource = res2; }
/// <summary> /// SELECT Ename, Job, Hiredate FROM Emps /// UNION /// SELECT "Brak wartości", null, null; /// </summary> private void Przyklad10Button_Click(object sender, EventArgs e) { var result = Emps .Select(emp => new { Ename = emp.Ename, Job = emp.Job, Hiredate = emp.HireDate }) .Union(Emps .Select(n => new { Ename = "Brak wartości", Job = (string)null, Hiredate = (DateTime?)null })) .ToList(); WynikTextBox.Clear(); ResultsDataGridView.DataSource = result; }