tutorials.de Buch-Aktion 02/2012
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
614
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von exiter28
    exiter28 exiter28 ist offline Mitglied Gold
    Registriert seit
    Apr 2009
    Beiträge
    174
    Hallo,
    ich bräuchte mal kurzen denkanstoß:

    Mit folgendem Select werden ja alle Daten innerhalb eines Zeitraums angezeigt:
    Code :
    1
    2
    3
    4
    5
    
    Dim sql As String
     
    sql = "date >= # " & DateTimePicker2.Value.Month & "/" & DateTimePicker2.Value.Day & "/" & DateTimePicker2.Value.Year & "#"
    sql += " AND date <= # " & DateTimePicker3.Value.Month & "/" & DateTimePicker3.Value.Day & "/" & DateTimePicker3.Value.Year & "#"
    MoneyBindingSource.Filter = sql

    Soweit so gut. Nun möchte ich aber aus einer bestimmten Spalte (day_issuing)
    alle Werte in dem angezeigten Zeitraum summieren und in einer Textbox ausgeben.

    Würde Euch dazu was einfallen?


    Vielen Dank schon mal!
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.257
    Anstelle von "SELECT day_issuing" einfach "SELECT SUM(day_issuing)".
     

  3. #3
    Avatar von exiter28
    exiter28 exiter28 ist offline Mitglied Gold
    Registriert seit
    Apr 2009
    Beiträge
    174
    Code :
    1
    2
    3
    4
    
    Dim sql As String
     
            sql = "SELECT SUM(day_issuing)"
            MoneyBindingSource.Filter = (sql)

    Wenn ich es so mache, bekomme ich einen fehler:

    Syntaxfehler: Fehlender Operand nach dem Operator 'SUM'.
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    7.983
    Hi.

    Eine SQL Select Anweisung hat immer noch die Form:
    Code sql:
    1
    
    SELECT ... FROM ...
    Siehe z.B. http://sql.1keydata.com/de/sql-funktionen.php

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    Avatar von exiter28
    exiter28 exiter28 ist offline Mitglied Gold
    Registriert seit
    Apr 2009
    Beiträge
    174
    hi,

    ok das stimmt. Aber kann es sein, daß DataSet kein SQL kann?
     

  6. #6
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.257
    Was ist denn überhaupt "MoneyBindingSource"? Du legst doch jedesmal nur das Attribut "Filter" fest, was möglicherweise nur für die WHERE Bedingung Zuständig ist (wenn man deinen Startpost betrachtet). Irgendwo musst du doch festlegen, welche Spalten abgefragt werden.

    Zitat Zitat von exiter28 Beitrag anzeigen
    Aber kann es sein, daß DataSet kein SQL kann?
    Also arbeitest du garnicht auf einer Datenbank? Können wir ja nicht erraten. Das DataSet beherrscht nur eine beschränkte Untermenge des SQL-Standards. SUM gehört nicht dazu.

    http://forums.asp.net/t/985565.aspx
     

  7. #7
    Avatar von exiter28
    exiter28 exiter28 ist offline Mitglied Gold
    Registriert seit
    Apr 2009
    Beiträge
    174
    hab das jetzt mal mit u.s. code versucht. Aber komischer weise bekomme ich immer einen Systaxfehler: Ungültige Verwendung von Aggregatfunktion Sum() und Typ: String.

    Kann ich die Summe nicht als String ausgeben?

    Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & verzeichnis & "moch.mdb;"
    Dim conn As New OleDbConnection(strConn)
    Dim da As OleDbDataAdapter = New OleDbDataAdapter("Select * FROM [money]", conn)
    Dim dt As New DataTable
    Dim ds As New DataSet
    Dim bs As New BindingSource

    ds.Tables.Add(dt)
    da.Fill(dt)
    bs.DataMember = ds.Tables(0).TableName
    bs.DataSource = ds
    MoneyDataGridView.DataSource = bs

    ' Über DataTable
    'lbl1.Text = dt.Compute("Sum([day_issuing])", "")

    'oder

    ' Über DataSet
    lbl1.Text = ds.Tables(0).Compute("Sum([day_issuing])", "")
     

  8. #8
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.257
    Welcher Datentyp hat die Spalte "day_issuing"? Und was sind das für eckige Klammer?
    Du musst das Ergebnis von Compute() noch in einen String umwandeln, um es an das Label weiterzugeben. Also .ToString() anhängen.


    Hier steht eigentlich alles was man so wissen muss
    http://msdn.microsoft.com/en-us/libr...=VS.71%29.aspx
     

  9. #9
    Avatar von exiter28
    exiter28 exiter28 ist offline Mitglied Gold
    Registriert seit
    Apr 2009
    Beiträge
    174
    habs jetzt selber rausgefunden. Die Summe schreib ich einfach in eine andere Tabelle (temporär) und gib die dann aus.
     

  10. #10
    Avatar von exiter28
    exiter28 exiter28 ist offline Mitglied Gold
    Registriert seit
    Apr 2009
    Beiträge
    174
    Zitat Zitat von exiter28 Beitrag anzeigen
    habs jetzt selber rausgefunden. Die Summe schreib ich einfach in eine andere Tabelle (temporär) und gib die dann aus.
    Dim AccessCommand As New System.Data.OleDb.OleDbCommand("SELECT SUM(day_issuing) INTO [sum_issuing] from [money] WHERE date >=# " & DateTimePicker2.Value.Month & "/" & DateTimePicker2.Value.Day & "/" & DateTimePicker2.Value.Year & "# AND date <= # " & DateTimePicker3.Value.Month & "/" & DateTimePicker3.Value.Day & "/" & DateTimePicker3.Value.Year & "#", AccessConn)
     

Ähnliche Themen

  1. Textbox überprüfen (Werte aus einer Textdatei)
    Von HeaDHunteR im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 06.07.10, 10:56
  2. Antworten: 1
    Letzter Beitrag: 16.04.10, 12:21
  3. Zufallszahl in einer Textbox ausgeben!
    Von cobfreaky im Forum .NET Windows Forms
    Antworten: 7
    Letzter Beitrag: 19.11.08, 09:12
  4. 3 Werte aus einer Spalte ausgeben
    Von elena6 im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 26.09.05, 15:33
  5. Array werte summieren
    Von nesma im Forum C/C++
    Antworten: 8
    Letzter Beitrag: 06.07.05, 12:27