Integer-Wert mit 1000er Trennzeichen anzeigen?

Deletemaster

Erfahrenes Mitglied
Hallo zusammen,
in meiner Query zähle ich die Anzahl einer bestimmten Bedingung aus einer Spalte
Die Anzahl als string darzustellen ist kein Problem
Nun möchte ich diesen Wert als Integer mit 1000er Trennzeichen darstellen
Meine Query sieht momentan so aus:

Code:
private void Anzahl_Offen()
{
string str_Anzahl = "SELECT COUNT(*) AS str_Anzahl_Offen FROM Tabelle WHERE  status ='0'";

OdbcCommand cmd_Anzahl = new OdbcCommand(str_Anzahl, conn);
OdbcDataReader reader = cmd_Anzahl.ExecuteReader();
while(reader.Read())
{
	lbl_Offen.Text	+=reader["str_Anzahl_Offen"];
}
reader.Close();
}
Wie kann hier die Query dahingehend verändert werden um ein Integer Wert mit 1000er-Trennzeichen darzustellen?
Zumal ich in einigen anderen Querys mit den COUNT(*) weiterarbeiten (rechnen) möchte

Wie immer: Danke für Eure Hilfe
 

Deletemaster

Erfahrenes Mitglied
Hallo Norbert,
danke für den Tipp, habe mir den link gleich als *.mht gespeichert!
Ich habe im KontexMenue nichts mit string.Format
an welcher Stelle meiner Query muss ich denn um:
string.Format("{0:n}",str_Anzahl) erweitern?

Danke
 

Deletemaster

Erfahrenes Mitglied
Also ich bekomme es einfach nicht hin:
Code:
private void Anzahl_Offen()
{
str_Anzahl_Offen) = "SELECT COUNT(*) AS str_Anzahl_Offen FROM Tabelle WHERE  status ='0'";

OdbcCommand cmd_Anzahl = new OdbcCommand(str_Anzahl_Offen, conn);
OdbcDataReader reader = cmd_Anzahl.ExecuteReader();
while(reader.Read())
{
	string.Format("{0:n}",str_Anzahl_Offen);
	lbl_Offen.Text	+=reader["str_Anzahl_Offen"] ;
}
reader.Close();
}
 

Norbert Eder

Erfahrenes Mitglied
Setz dich doch mit den Dingen auseinander und schlag beispielsweise auf dem MSDN nach. String.Format liefert ein Ergebnis zurück Dieses Ergebnis musst du natürlich auch zuweisen sonst funktioniert das nicht.

C#:
TextBox.Text = String.Format(......);

Dann weiters:
C#:
string.Format("{0:n}",str_Anzahl_Offen);
Das kann natürlich auch nicht funktionieren, du musst da natürlich den Wert aus dem Reader einsetzen, damit dieser formatiert wird.

Weiters ist str_Anzahl_Offen ja nur dein SQL-Statement, das wirst du schlecht in die von dir gewünschte Form bringen. Zumal du in dieser Zeile ein ) zuviel hast.

Und nochmals: Beschäftige dich mehr mit den Klassen und Methoden die du verwendest und lese in Büchern oder im MSDN nach was sie tun, welche Parameter sie erwarten, ob es einen Rückgabewert gibt und denke beim Entwickeln nach. Du willst eine Zahl formatieren, dann kann es nicht funktionieren wenn du ein SQL Statement dem String.Format übergibst. Einfach mitdenken, dann tust du dir beim Entwickeln auch wesentlich leichter.
 

Deletemaster

Erfahrenes Mitglied
Hallo Norbert,
erst mal danke für Deine Antwort,
ich habe die MSDN installiert (und greife darauf zurück, meistens mit wenig Erfolg, aber zum glück gibt es ja "tutorials" mit seinen Foren), einige Bücher aber mein Problem:
Ich benötige immer die Anschauung eines Beispiels (das ich versuche zu analysieren)
solange probiere ich rum
leider geht die LOGIK der Programmierung nicht immer mit der LOGIK des "normalen Denkens" konform
Kannst du mir bitte anhand meiner Funktion AnzahlOffen()
die Verwendung des stringFormatProviders zeigen?

Danke
 

Norbert Eder

Erfahrenes Mitglied
So in etwa solltest du das machen:
C#:
int number = reader.GetInt32(0);
string formattedNumber = String.Format("{0:n}", number);
lbl_Offen.Text += formattedNumber;
So, reader.GetInt32(0) liefert dir den Count zurück, welcher mit String.Format formatiert wird. Und dann weisen wir das einfach deinem Label zu. Wobei ich jetzt nicht weiß, welchen Sinn hier += haben soll, da du weder ein Trennzeichen noch einen Zeilenvorschub einbaust, aber das wirst dann schon du selbst wissen.
 

Neue Beiträge