Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
4579
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    RedWraith RedWraith ist offline Mitglied Silber
    Registriert seit
    Aug 2007
    Beiträge
    61
    Hallo !

    Ich habe folgendes Problem: Ich bekomme Lagerdaten (Artikelnummer, Materialnummer, Größe, Menge) aus drei verschiedenen Datenquellen (einer Dateidatenbank, einem komischen DBMS und aus ner XML-Schnittstelle). Und genau diese Daten muss ich irgendwie gruppieren und summieren.

    Im Moment schreibe ich die Daten aus allen drei Datenquellen in eine temporäre MySQL-Tabelle und ziehe mir die Daten dann erneut mit einem SELECT heraus.

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    Tabelle TmpLager
    ----------------------------
    int Artikelnr
    int Materialnr
    int Hoehe
    int Breite
    int Menge

    Und nachher hol ich mir die Sachen einfach folgendermaßen:

    Code :
    1
    
    SELECT Artikelnr, Materialnr, Hoehe, Breite, SUM(Menge) FROM TmpLager GROUP BY Artikelnr, Materialnr, Hoehe, Breite

    Das Ganze funktioniert auch wunderbar, das einzigste, was mich daran stört ist, dass ich dafür extra eine Datenbankverbindung zu einem DBMS brauche und ich wollte nun fragen, ob es eine Möglichkeit gibt, diesen Tabellenkram vielleicht direkt in VB.NET, vielleicht in einem DataTable oder ähnlichem, auszuführen, ohne dabei den Umweg über einen externen Server zu gehen.


    Mit freundlichen Grüßen
    Red
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.883
    Blog-Einträge
    34
    Hi,

    Wenn du .NET 3.5 nutzt ist vielleicht LINQ das was du suchst
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Von welchen Datenmengen sprechen wir denn?
     

  4. #4
    RedWraith RedWraith ist offline Mitglied Silber
    Registriert seit
    Aug 2007
    Beiträge
    61
    Nicht viel. Die Quelldatenbanken sind zwar riesig, aber mein Programm sieht dabei nur jeweils was an einem Stichtag getätigt worden ist. Ich würd sagen maximal 50-100 Datensätze, vor der Gruppierung/Summierung. Danach dürften es nurnoch etwa 1/3 davon sein.

    EDIT:
    Irre ich mich oder ist LINQ nur für Visual Studio 2008 erhältlich ?
    Weil ich im Moment nur in VS 2005 entwickeln kann.
    Geändert von RedWraith (28.05.08 um 18:53 Uhr)
     

  5. #5
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Lies einfach die Daten aus den unterschiedlichen Quellen ein, halte diese in einer Struktur (DataSet, eigene Struktur) und mach darauf dann eine Gruppierung. Bei den wenigen Daten ist es nicht sinnvoll, hier noch über eine eigene Datenbank zu gehen.
     

  6. #6
    RedWraith RedWraith ist offline Mitglied Silber
    Registriert seit
    Aug 2007
    Beiträge
    61
    Genau das will ich ja !

    Die Frage ist nur, wie ich das am besten umsetze.
    Ich hab das ganze ja im Moment über eine Datenbank laufen und mir ist die Unsinnigkeit davon durchaus bewusst.
    Ich wollte nur wissen, ob VB.NET 2005 von Haus aus ihrgendeinen Mechanismus liefert, der mir hier Arbeit
    abnimmt.


    mfg Red
    Geändert von RedWraith (31.05.08 um 00:48 Uhr)
     

  7. #7
    Avatar von FwDonnerbalken
    FwDonnerbalken FwDonnerbalken ist offline Mitglied Brokat
    Registriert seit
    May 2005
    Beiträge
    323
    Wie Nobert schreibt, verwende ein DataSet um die Daten zu speichern, anstelle der mySQL Datenbank. DIES ist der Mechanismus den .NET hier liefert.
     
    Gruß,
    Sebastian

    Mein XING Profil

    Hilfreiche Antworten bitte bewerten!

  8. #8
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Du kannst dir natürlich auch eine eigene Geschichte aufbauen. Beispiel:

    Datenobjekt:
    Code :
    1
    2
    3
    4
    5
    6
    
    public class MyDataObject
    {
      public Int64 Id { get; set; }
      public String DataField1 { get; set; }
      public String DataField2 { get; set; }
    }

    Dann musst du die Datenobjekte noch in eine Liste stecken, damit du darüber iterieren kannst:
    Code :
    1
    2
    3
    
    public class MyDataObjectCollection : Collection<MyDataObject>
    {
    }
    Und nun musst du deine Daten eben auslesen. Beispielsweise mit einem SqlDataReader wenn du auf eine Datenbank zugreifst:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    MyDataObjectCollection objCol = new MyDataObjectCollection();
    SqlDataReader reader = myCommand.ExecuteReader();
    while (reader.Read())
    {
      MyDataObject obj = new MyDataObject();
      obj.Id = reader.GetInt(0);
      obj.DataField1 = reader[1].ToString();
      obj.DataField2 = reader[2].ToString();
      objCol.Add(obj);
    }
    Und so verfährst du für alle deine Datenquellen. Danach hast du eine Collection mit allen Daten und darauf kannst du dann eben noch weitere Aktionen durchführen.

    WICHTIG: Der Sourcecode ist lediglich schnell zusammengeschrieben, ohne IntelliSense , ohne Syntax-Check und hat Symbolcharakter. D.h. er wird vermutlich nicht kompilieren und dient nur zur Veranschaulichung um dir zu zeigen, was genau ich meine.
     

Ähnliche Themen

  1. MSSQL Update Statement auf Select ausführen
    Von Loki2 im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 22.07.10, 07:55
  2. [VB.Net] select aus DataTable
    Von deusfalsus im Forum .NET Café
    Antworten: 1
    Letzter Beitrag: 13.08.08, 14:29
  3. Antworten: 2
    Letzter Beitrag: 30.11.07, 14:53
  4. DataTable zu anderer DataTable hinzufügen
    Von broetchen im Forum .NET Datenverwaltung
    Antworten: 4
    Letzter Beitrag: 12.09.05, 15:00
  5. Select auf Datatable
    Von Rappi im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 30.11.04, 09:22