MySQL Command Error

  • VB.NET
  • .NET (FX) 4.0

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Gunngir.

    MySQL Command Error

    Hallo, wisst Ihr vielleicht, woran der Query scheitert?
    Die Problem-Zeile ist Zeile 16

    SELECT abteilung.Abteilung, COUNT(abteilung.abteilung) AS NumberOfEntries
    FROM elemente WHERE Komponente=TRUE
    INNER JOIN abteilung ON elemente.Abteilung=abteilung.id
    GROUP BY abteilung


    Die Spalte "Komponente" ist Boolean [Tinyint(1)]
    Keine der folgenden Varianten funktionieren:
    Komponente=TRUE
    Komponente=FALSE
    Komponente=0
    Komponente=1

    Fehlermeldung:


    VB.NET-Quellcode

    1. Imports System.Windows.Forms.DataVisualization.Charting
    2. Public Class frm_Statistics
    3. Dim cnn As MySqlConnection
    4. Dim connectionString As String = My.Settings("Projektconnectionstring").ToString
    5. Dim sqlAdp As MySqlDataAdapter
    6. Dim ds As New DataSet
    7. Dim dt As New DataSet
    8. Private Sub Form_visiblechanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.VisibleChanged
    9. If Me.Visible = False Then Exit Sub
    10. Try
    11. Dim i As Integer
    12. cnn = New MySqlConnection(connectionString)
    13. cnn.Open()
    14. sqlAdp = New MySqlDataAdapter(" SELECT abteilung.Abteilung, COUNT(abteilung.abteilung) AS NumberOfEntries " &
    15. " FROM elemente WHERE Komponente=TRUE " &
    16. " INNER JOIN abteilung ON elemente.Abteilung=abteilung.id " &
    17. " GROUP BY abteilung", cnn)
    18. cnn.Close()
    19. sqlAdp.Fill(ds)
    20. sqlAdp.Fill(dt)
    21. 'fetching data from dataset in disconnected mode
    22. For i = 0 To ds.Tables(0).Rows.Count - 1
    23. Me.KompChart.Series("Series1").Points.AddXY(dt.Tables(0).Rows(i).Item("Abteilung"), dt.Tables(0).Rows(i).Item("NumberOfEntries"))
    24. Next
    25. 'fetching data from datatable in disconnected mode
    26. 'For i = 0 To dt.Tables(0).Rows.Count - 1
    27. ' MsgBox(dt.Tables(0).Rows(i).Item(0))
    28. 'Next
    29. Catch ex As Exception
    30. MessageBox.Show(ex.Message)
    31. End Try
    32. End Sub
    33. End Class
    Setz die WHERE-clause richtig:

    SQL-Abfrage

    1. SELECT abteilung.Abteilung, COUNT(abteilung.abteilung) AS NumberOfEntries
    2. FROM elemente
    3. INNER JOIN abteilung ON elemente.Abteilung=abteilung.id
    4. WHERE Komponente=1
    5. GROUP BY abteilung


    Und vielleicht etwas kompakter:

    SQL-Abfrage

    1. SELECT a.abteilung, COUNT(a.abteilung) AS NumberOfEntries
    2. FROM elemente e INNER JOIN abteilung a ON e.abteilung = a.id
    3. WHERE komponente = 1
    4. GROUP BY a.abteilung