-
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
-
Hi,
Wenn du .NET 3.5 nutzt ist vielleicht LINQ das was du suchstGrüße Nico
----------------------
Xing
----------------------
Zitat von unbekannt
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
Von welchen Datenmengen sprechen wir denn?
Microsoft MVP - Client App Dev
.NET GUI - Community für WPF, Silverlight, Win-Forms und mehr
WPF, Silverlight und mehr - mein Blog :: The .NET Blog :: WPF Blogger :: .NET BlogBook
-
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)
-
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.
Microsoft MVP - Client App Dev
.NET GUI - Community für WPF, Silverlight, Win-Forms und mehr
WPF, Silverlight und mehr - mein Blog :: The .NET Blog :: WPF Blogger :: .NET BlogBook
-
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 RedGeändert von RedWraith (31.05.08 um 00:48 Uhr)
-
31.05.08 01:22 #7
Wie Nobert schreibt, verwende ein DataSet um die Daten zu speichern, anstelle der mySQL Datenbank. DIES ist der Mechanismus den .NET hier liefert.
-
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:
Und nun musst du deine Daten eben auslesen. Beispielsweise mit einem SqlDataReader wenn du auf eine Datenbank zugreifst:Code :1 2 3
public class MyDataObjectCollection : Collection<MyDataObject> { }
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.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); }
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.
Microsoft MVP - Client App Dev
.NET GUI - Community für WPF, Silverlight, Win-Forms und mehr
WPF, Silverlight und mehr - mein Blog :: The .NET Blog :: WPF Blogger :: .NET BlogBook
Ähnliche Themen
-
Vb.net batach nicht sichtbar ausführen
Von Maxro im Forum .NET CaféAntworten: 3Letzter Beitrag: 19.08.07, 21:56 -
Perl Script aus VB.Net App ausführen
Von AvalanchRider im Forum .NET Application und Service DesignAntworten: 5Letzter Beitrag: 04.01.07, 17:50 -
[VB.net] Programm ausführen mit Parametern
Von virus-2k im Forum .NET Windows FormsAntworten: 2Letzter Beitrag: 02.11.06, 14:05 -
Select auf Datatable
Von Rappi im Forum .NET ArchivAntworten: 3Letzter Beitrag: 30.11.04, 09:22 -
[VB-Script] Datei auf Festplatte kopieren und ausführen.
Von maho15 im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 14.05.04, 11:21



Zitieren


Login





Lesezeichen