Laden...

ComboBox DataSource Inhalte ohne Leerzeichen

Erstellt von Masterblume vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.243 Views
M
Masterblume Themenstarter:in
76 Beiträge seit 2008
vor 16 Jahren
ComboBox DataSource Inhalte ohne Leerzeichen

Hallo Leute,

ich hoffe es ist das richtige Forum.

Es geht um eine ComboBox die ich per DataSource mit einer DataTable fülle/binde.

Ich hab jetzt 2 verschieden Codeabschnitte erstellt.


//Combobox füllen
cmbFilterFondskategorie.DisplayMember = "fkaKategorieBez";
cmbFilterFondskategorie.DataSource = DB.GetFondskategorie();



//Combobox füllen
DataTable dtFK = DB.GetFondskategorie();
DataTableReader filterFondsKategorie = DB.GetFondskategorie().CreateDataReader();

while (filterFondsKategorie.Read())
{
                cmbFilterFondskategorie.Items.Add (filterFondsKategorie.GetValue (0).ToString ().Trim ());
}


Beides funktioniert, aber beim ersten Codefragment, wird die Combobox auch mit den Leerzeichen aus der DB gefüllt. Gibt es da eine Methode, die die Leerzeichen entfernt.

Wenn ich in der SQL Anweisung mit RTrim arbeite wird nur System.Data.DataRowView angezeigt.

Gruss und Danke

Martin

915 Beiträge seit 2006
vor 16 Jahren

Der einfachste Weg wäre in der SQL Anweisung im SELECT Statement anhand von T-SQL, die entsprechenden Leerzeichen zu entfernen.

Siehe hierzu RTRIM (Zeichenfolge) und LTRIM (Zeichenfolge).

Hierzu auch nen guter Link für T-SQL.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

1.378 Beiträge seit 2006
vor 16 Jahren

Ich tippe auf ein Fehlendes Alias nach RTrim().

So sollte es funktionieren:

SELECT LTrim(RTrim(fkaKategorieBez)) AS fkaKategorieBez, ....

Lg XXX

M
Masterblume Themenstarter:in
76 Beiträge seit 2008
vor 16 Jahren

Mit dem Alias hatte ich mir auch überlegt, hat so auch wunderbar funktioniert. Danke!

Leider ist jetzt der erste Eintrag sichtbar, soll aber nicht sein, gibt es da eine Möglichkeit?

Nach meiner while Schleife kann ich ja angeben ob der erste Eintrag sichtbar ist.


cmbFilterFondskategorie.SelectedIndex = 0;

1.378 Beiträge seit 2006
vor 16 Jahren

Mit SelectedIndex kann man nicht angeben ob der erste Eintrag sichtbar ist oder nicht, sondern nur welcher Eintrag angezeigt werden soll.

Wenn du keinen Eintrag selektiert haben willst, musst du ein leeres Item zur DataSource hinzufügen.

Oder ist das 0. Element ein leeres Item?

Lg XXX

M
Masterblume Themenstarter:in
76 Beiträge seit 2008
vor 16 Jahren

Mit SelectedIndex kann man nicht angeben ob der erste Eintrag sichtbar ist oder nicht, sondern nur welcher Eintrag angezeigt werden soll.

Das ist schon klar! War falsch ausgedrückt von mir.

Ich muss auf jeden Fall einen leeren Eintrag hinzufügen? Ein leeres Item hinzufügen, sowas will ich eigentlich nicht.

Das 0 Element ist keine leeres Item!

Da werde ich mir wohl eher eine Funktion schreiben, die meine Routine kapselt.

Gruss Martin

M
Masterblume Themenstarter:in
76 Beiträge seit 2008
vor 16 Jahren

Ich hab jetzt mal was neues probiert.

Ich hab einfach


cmbFilterFondskategorie.DisplayMember = "fkaKategorieBez";
cmbFilterFondskategorie.DataSource = DB.GetFondskategorie();
cmbFilterFondskategorie.SelectedIndex = -1;

SelectedIndex auf -1 gesetzt und es wird ein leeres Feld angezeigt.
Es geht, keine Ahnung ob das so richtig ist.