Zurück   Entwickler-Forum > .NET > ADO.NET

Antwort
 
Themen-Optionen Ansicht

Feld aus Datatable als Nachschlagefeld
Alt 02.06.2010, 08:23   #1
daribla
Aufsteiger
 
daribla ist offline
Registriert seit: 08.03.2010
Beiträge: 58
daribla befindet sich auf einem aufstrebenden Ast
Standard Feld aus Datatable als Nachschlagefeld

Ich habe eine Kundentabelle in einem typisierten Dataset, die ich mit Tableadapter und Bindingsource an eine Form gebunden habe.

Diese Tabelle enthält u.a. das Feld Suchbegriff, über die sich der Kundendatensatz über eine angebundene Combobox schnell finden lassen soll.

Da ich es vermeiden möchte alle Kundendatensätze beim Öffnen des Formulars zu laden (Performance) möchte ich nur die Combobox mit den Suchbegriffen (und der KundenID) füllen um dann die Daten des selectierten Kunden ins Formular zu laden (Fillby).

Jetzt meine Frage dazu?

1.) Macht es peformancemäßig Sinn, da ich ja sowieso einmal alle Suchbegriffe und ID's laden muß?
Ich meine ist das Laden von nur 2Feldern schneller ales das Laden aller Felder?

2.) Muß ich dann tatsächlich 2 Bindingsourcen (für Combobox und Formular) benutzen?
  Mit Zitat antworten

Anzeige

Alt 02.06.2010, 09:34   #2
Jürgen Thomas
Stammgast
 
Jürgen Thomas ist offline
Registriert seit: 26.02.2003
Beiträge: 1.926
Jürgen Thomas befindet sich auf einem aufstrebenden Ast
Standard

Zu 1. Ja. Die Menge der Daten, die die DB bereitstellen und übertragen muss, reduziert sich erheblich. Es gibt grundsätzlich die Empfehlung, nicht mit "SELECT * FROM..." zu arbeiten, sondern die gewünschten Felder aufzuführen.

In diesem Fall ist es auch nicht problematisch, wenn du dadurch zwei DataTables hast (eine zum Nachschlagen und Auswählen, eine für weitere Informationen). Ob du wirklich so verfahren willst, hängt davon ab, ob du "regelmäßig" auch die weiteren Informationen brauchst oder nur ab und zu.

Zu 2. Es gibt wohl Möglichkeiten, das zu umgehen; es ist auf jeden Fall praktischer, so zu verfahren. Warum auch nicht... (jede DataTable bekommt ihre BindingSource).

Gruß Jürgen
  Mit Zitat antworten

Alt 02.06.2010, 09:45   #3
daribla
Aufsteiger
 
daribla ist offline
Registriert seit: 08.03.2010
Beiträge: 58
daribla befindet sich auf einem aufstrebenden Ast
Standard

Ok, alles klar.

Und wenn ich in einer Combobox auf den Formular Anreden für die Kunden aus der Tabelle Anreden habe und auf dem gleichen Formular nochmals die Anreden für die Ansprechpartner habe, benötige ich dafür doch nur eine Datatable, die ich mit 2 unterschiedlichen Bindingsourcen anbinde richtig?
  Mit Zitat antworten

Alt 02.06.2010, 09:58   #4
Jürgen Thomas
Stammgast
 
Jürgen Thomas ist offline
Registriert seit: 26.02.2003
Beiträge: 1.926
Jürgen Thomas befindet sich auf einem aufstrebenden Ast
Standard

So müsste es sein (das habe ich noch nicht probiert, aber von der inneren Logik her sehe ich es auch so). Jürgen
  Mit Zitat antworten

Alt 02.06.2010, 11:03   #5
daribla
Aufsteiger
 
daribla ist offline
Registriert seit: 08.03.2010
Beiträge: 58
daribla befindet sich auf einem aufstrebenden Ast
Standard

Um nochmal auf die erste Frage zurückzukommen.

Wenn ich die Mastertabelle mit fillby fülle, muss ich dann die Detailtabellen auch mit fillby füllen oder werden dort bei einen fill automatisch (über die verknüpfung) nur die Detaildatensätze des Datensatzes aus der Mastertabelle geladen
  Mit Zitat antworten

Alt 02.06.2010, 12:53   #6
fanderlf
Stammgast
 
fanderlf ist offline
Registriert seit: 18.07.2008
Beiträge: 1.369
fanderlf befindet sich auf einem aufstrebenden Ast
Standard

Du musst beide händisch füllen. Das DataSet darfst Du Dir nicht als "Nachbildung" der Datenbank vorstellen, sondern als eigenständige Datenstruktur in die man auch Daten aus der Datenbank laden kann.
Würde das DataSet immer selbständig alle Daten laden würdest Du gerade bei großen Datenmengen arge Probleme bekommen, wenn er immer alles raus schaufelt
  Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu



Alle Zeitangaben in WEZ +2. Es ist jetzt 00:15 Uhr.



© 1995–2009 Software & Support Verlag GmbH. Vervielfältigung nur mit Genehmigung des Verlags.