Linq: einzelne Spalten ausgeben
Aufgabe:
Mit LinQ einzelne Spalten mit Namen ausgeben aus Tabellen oder Abfragen
Lösung:
Einzelne Spalten werden mist Select new { Anzeige_Name=Tabelle.Feld } erzeugt
Ausgabe Wie:
select new { IDSchicht=tbl.IDSchicht ,Schicht = tbl.Schicht, Farbe=tbl.Schicht }
|
Code-Beispiel
var data_Schichten = (from tbl in db.tblBase_Schichtenorderby tbl.SortierNr select new { IDSchicht=tbl.IDSchicht ,Schicht = tbl.Schicht, Farbe=tbl.Schicht } );
|
Die Ausgabe in C# erfolgt dann direkt wie hier
string sColorSchicht = schicht.Farbe; |
Betrifft: SQL Alias AS Field Name
Komplettes Linq, SQL, C# Code-Beispiel
private void Grid_Mitarbeiter_Row_Header_fuellen() { //--------< Grid_Mitarbeiter_Row1_fuellen() >------------ Add_Row_Grid_Mitarbeiter(); //Tag rowNr=0 Add_Row_Grid_Mitarbeiter(); //Schicht rowNr=1
//--< Schichtmodel_holen >-- var data_Schichten = (from tbl in db.tblBase_Schichten orderby tbl.SortierNr select new { IDSchicht = tbl.IDSchicht, Schicht = tbl.Schicht, Farbe = tbl.Schicht });
//--</ Schichtmodel_holen >-- _Anzahl_Tagesschichten = data_Schichten.Count(); //< check > if (_Anzahl_Tagesschichten < 1) { MessageBox.Show("Anzahl Schichten ist 0", "Schichten erstellen"); return; } //</ check > //------< Header_Tage_fuellen >------ for (int iDay = 0; iDay < 7; iDay++) { DateTime day = _monday_of_PlanWeek.AddDays(iDay);
//-< day_Header >- Insert_Label_in_Grid_Mitarbeiter(day.ToString("ddd dd.MM.yyyy"), 0, 1 + (iDay * _Anzahl_Tagesschichten), 1, _Anzahl_Tagesschichten, _Color_Header_Days); int intSpalteDay = (iDay * _Anzahl_Tagesschichten); string sDayPlan = day.ToString("yyyyMMdd"); //-</ day_Header >-
//----< @Loop: Schichten >---- int iSchicht = -1; foreach (var schicht in data_Schichten) { //---< Schicht >--- //*fuer jede Schicht eine Spalten anlegen //< label > iSchicht++; string sColorSchicht = schicht.Farbe; Insert_Label_in_Grid_Mitarbeiter(schicht.Schicht, 1, 1 + intSpalteDay + iSchicht, 1, 1, _Color_Header_Schicht, HorizontalAlignment.Center); //</ label >
//< column > ColumnDefinition column = new ColumnDefinition(); column = new ColumnDefinition(); column.Width = new GridLength(_Breite_Schicht); column.Tag = "col_Mitarbeiter_DayPlan_" + sDayPlan + "_IDSchicht_" + schicht.IDSchicht; Grid_Mitarbeiter.ColumnDefinitions.Add(column); //</ column > //---</ Schicht >--- } //----</ @Loop: Schichten >----
} //------</ Header_Tage_fuellen >------ } //--------</ Grid_Mitarbeiter_Row1_fuellen() >------------ }
|