tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
818
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Deletemaster
    Deletemaster Deletemaster ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Berlin
    Beiträge
    269
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    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
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Wieso dazu die Query umstellen? Arbeite beispielsweise mit String.Format.

    http://alexonasp.net/samples/stringformatting/
     

  3. #3
    Avatar von Deletemaster
    Deletemaster Deletemaster ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Berlin
    Beiträge
    269
    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
     

  4. #4
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Wieso denn in der Query? Dort wo du den Wert anzeigen willst, also beim Setzen der Text-Eigenschaft.
     

  5. #5
    Avatar von Deletemaster
    Deletemaster Deletemaster ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Berlin
    Beiträge
    269
    Also ich bekomme es einfach nicht hin:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    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())
    {
        [B]string.Format("{0:n}",str_Anzahl_Offen);[/B]
        lbl_Offen.Text  +=reader["str_Anzahl_Offen"] ;
    }
    reader.Close();
    }
     

  6. #6
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    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.

    Code csharp:
    1
    
    TextBox.Text = String.Format(......);

    Dann weiters:
    Code csharp:
    1
    
    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.
     

  7. #7
    Avatar von Deletemaster
    Deletemaster Deletemaster ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Ort
    Berlin
    Beiträge
    269
    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
     

  8. #8
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    So in etwa solltest du das machen:
    Code csharp:
    1
    2
    3
    
    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.
     

Ähnliche Themen

  1. Formatierung mit 1000er Trennzeichen
    Von raccoon im Forum Delphi, Kylix, Pascal
    Antworten: 0
    Letzter Beitrag: 21.08.07, 09:51
  2. GetPrivateProfileString integer Wert
    Von Prefekt im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 14.08.07, 11:05
  3. Zahl mit 1000er Trennzeichen in Excel einfügen
    Von zaeppi im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 25.04.07, 10:58
  4. Integer Wert 00000001 nur wie?
    Von Vamp7771 im Forum .NET Windows Forms
    Antworten: 6
    Letzter Beitrag: 10.11.06, 15:32
  5. 1000er Trennung bei Int-Wert
    Von Funghi im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 21.08.05, 16:41