tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    RedWraith RedWraith ist offline Mitglied Silber RedWraith hat eine blütenweiße Weste
    Registriert seit
    Aug 2007
    Beiträge
    50
    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
    Benutzerbild von Nico Graichen
    Nico Graichen Nico Graichen ist offline gemballa Nico Graichen kann auf vieles stolz sein Nico Graichen kann auf vieles stolz sein Nico Graichen kann auf vieles stolz sein Nico Graichen kann auf vieles stolz sein Nico Graichen kann auf vieles stolz sein Nico Graichen kann auf vieles stolz sein
    tutorials.de Premium-User
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.293
    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 unbekannt
    Es ist nicht das Essen zwischen Weihnachten und Neujahr, das dick macht, sondern das Essen zwischen Neujahr und Weihnacht
    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
    Benutzerbild von Norbert Eder
    Norbert Eder Norbert Eder ist offline Moderator Norbert Eder ist einfach richtig nett Norbert Eder ist einfach richtig nett
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.081
    Blog-Einträge
    51
    Von welchen Datenmengen sprechen wir denn?

  4. #4
    RedWraith RedWraith ist offline Mitglied Silber RedWraith hat eine blütenweiße Weste
    Registriert seit
    Aug 2007
    Beiträge
    50
    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
    Benutzerbild von Norbert Eder
    Norbert Eder Norbert Eder ist offline Moderator Norbert Eder ist einfach richtig nett Norbert Eder ist einfach richtig nett
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.081
    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 RedWraith hat eine blütenweiße Weste
    Registriert seit
    Aug 2007
    Beiträge
    50
    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
    Benutzerbild von FwDonnerbalken
    FwDonnerbalken FwDonnerbalken ist offline Mitglied Brokat FwDonnerbalken ist ein sehr geschätzer Mensch
    Registriert seit
    May 2005
    Beiträge
    321
    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
    Benutzerbild von Norbert Eder
    Norbert Eder Norbert Eder ist offline Moderator Norbert Eder ist einfach richtig nett Norbert Eder ist einfach richtig nett
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.081
    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. Vb.net batach nicht sichtbar ausführen
    Von Maxro im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 19.08.07, 21:56
  2. Perl Script aus VB.Net App ausführen
    Von AvalanchRider im Forum .NET Application und Service Design
    Antworten: 5
    Letzter Beitrag: 04.01.07, 17:50
  3. [VB.net] Programm ausführen mit Parametern
    Von virus-2k im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 02.11.06, 14:05
  4. Select auf Datatable
    Von Rappi im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 30.11.04, 09:22
  5. [VB-Script] Datei auf Festplatte kopieren und ausführen.
    Von maho15 im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 14.05.04, 11:21

Lesezeichen

Lesezeichen