tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1838
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Hier mal ein kleines Beispiel wie man über die Relations einer DataTable von einer DataRow aus traversieren kann:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    using DataTable = System.Data.DataTable;
    using DataRow = System.Data.DataRow;
    using DataColumn = System.Data.DataColumn;
    using DataRelation = System.Data.DataRelation;
    using DataSet = System.Data.DataSet;
    using DataView = System.Data.DataView;
     
    namespace De.Tutorials.Training
    {
        public class InMemoryMappingExample
        {
            public static void Main(string[] args)
            {
                Console.WriteLine("InMemoryMappingExample");
                DataTable articleTable = CreateDummyTable("article", new string[] { "ID", "VALUE" }, new object[][] { new object[] { 1, "Gummibärchen" }, new object[] { 2, "Bitburger" }, new object[] { 3, "Colorado" }, new object[] { 4, "Salami" } });
                DataTable groupTable = CreateDummyTable("group", new string[] { "ID", "VALUE" }, new object[][] { new object[] { 1, "SÜßWaren" }, new object[] { 2, "Bier" }, new object[] { 3, "Wurst" } });
                DataTable articleGroupMappingTable = CreateDummyTable("articleGroupMapping", new string[] { "MAPPING_ID", "LEFT_ID", "RIGHT_ID" }, new object[][] { new object[] { 1, 1, 1 }, new object[] { 2, 2, 2 }, new object[] { 3, 3, 1 }, new object[] { 4, 4, 3 } });
                DataSet dataSet = new DataSet("joinedDataSet");
     
                DataView mappingDataView = dataSet.DefaultViewManager.CreateDataView(articleGroupMappingTable);
                mappingDataView.Sort = "RIGHT_ID ASC";
                articleGroupMappingTable = mappingDataView.ToTable();
                            
                dataSet.Tables.Add(articleTable);
                dataSet.Tables.Add(groupTable);
                dataSet.Tables.Add(articleGroupMappingTable);
     
                articleTable.ChildRelations.Add("article", articleTable.Columns["ID"], articleGroupMappingTable.Columns["LEFT_ID"]);
                groupTable.ChildRelations.Add("articleGroup", groupTable.Columns["ID"], articleGroupMappingTable.Columns["RIGHT_ID"]);
     
                foreach (DataRow mappingDataRow in articleGroupMappingTable.Rows)
                {
                    PrintRow(mappingDataRow);
                }
            }
     
            private static void PrintRow(DataRow mappingDataRow)
            {
                StringBuilder buffer = new StringBuilder();
     
                DataRow articleGroupDataRow = mappingDataRow.GetParentRow("articleGroup");
     
                buffer.Append("Group: ");
                buffer.Append(articleGroupDataRow["ID"]);
                buffer.Append(" ");
                buffer.Append(articleGroupDataRow["VALUE"]);
     
                DataRow articleDataRow = mappingDataRow.GetParentRow("article");
     
                buffer.Append(" Article: ");
                buffer.Append(articleDataRow["ID"]);
                buffer.Append(" ");
                buffer.Append(articleDataRow["VALUE"]);
     
                Console.WriteLine(buffer);
            }
     
            private static DataTable CreateDummyTable(string tableName, string[] columnNames, object[][] rowData)
            {
                DataTable dataTable = new DataTable();
                dataTable.TableName = tableName;
     
                foreach (string columnName in columnNames)
                {
                    DataColumn dataColumn = new DataColumn(columnName);
                    dataTable.Columns.Add(dataColumn);
                }
     
                foreach (object[] row in rowData)
                {
                    dataTable.Rows.Add(row);
                }
     
                return dataTable;
            }
        }
    }

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  2. #2
    Ignus Ignus ist offline Mitglied Silber
    Registriert seit
    Jun 2006
    Beiträge
    55
    Was heist "traversieren"?
    Jeder wirft zwar damit um sich (selbst in der .NET Hilfe), aber nirgends steht genau was das Wort nun heist/bedeutet.

    Zudem finde ich es zwar gut wenn due hier solche Beispiele bringst, aber ohne Beschreibung dazu in den einzelnen Codeabschnitten, finde ich es etwas zu mühsam mir deinen Code im Detail anzuschauen. Besonders mir als Anfänger fällt sowas dann recht schwer.
     

  3. #3
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    Travsersieren kommt vom englischen traverse und bedeutet in diesem Zusammenhang soviel wie durchlaufen / ablaufen. Ich versuche meine Beispiele möglichst kurz zu halten und mit aussagekräftigen Methoden- und Variablennamen auszustatten so dass sie weitgehend selbsterklärend sind. Ich halte es für unnötig Kommentare zu schreiben die man auch in der MSDN Doku nachlesen kann.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

Ähnliche Themen

  1. Traversieren von Listen
    Von inseljavait im Forum Java
    Antworten: 2
    Letzter Beitrag: 01.01.08, 20:30
  2. SWT und TableTreeViewer / Traversieren von Elementen
    Von JoeBanane im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 19.07.07, 11:27
  3. DataTable zu anderer DataTable hinzufügen
    Von broetchen im Forum .NET Datenverwaltung
    Antworten: 4
    Letzter Beitrag: 12.09.05, 15:00
  4. Baumstrukturen traversieren
    Von Thomas Darimont im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 3
    Letzter Beitrag: 07.11.04, 23:52
  5. Relationen
    Von Pollux im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 27.05.01, 11:24