Windows Form Chart (Datasource)



  • hallo community,

    ich habe folgendes Problem,
    ich habe eine Tabelle angelegt und diese möchte ich lediglich in
    einem Chart einbinden und als Liniendiagramm anzeigen.

    Problem:
    Chart-> Eigenschaften
    -Ich binde die Tabelle[2013] durch Datasource in das Chart ein
    -Wenn ich nun auf (Eigenschaften->Diagramm-> Series) klicke öffnet sich ein fenster und ich kann auswählen, welche Daten ich auf den Achsen angezeigt haben möchte.
    Bei mir werden bei der bei der XValueMember alle Daten der Tabelle angezeigt und bei YValuemember nur die ersten zwei.

    Weshalb kann ich die anderen Daten nicht auswählen ???

    Grüß
    U.B



  • Und wieso erstellst du 2 Beiträge in verschiedenen Foren (Windows Form Chart, mittlerweile auf mycsharp.de gelöscht)? Warte das nächste mal bitte, bis in einem Forum geantwortet wurde. Auf die Weise wie du vorgehst, raubst du anderen unnötig Zeit.

    Wie sieht die Tabelle aus? Gibt es vielleicht keine X-Values für die anderen Y-Values?



  • Ok, werde ich das nächste mal beachten SORRY

    das ist meine Tabelle [2013]

    CREATE TABLE [dbo].[2013] (
        [Id]     INT        IDENTITY (1, 1) NOT NULL,
        [date]   DATE       NULL,
        [e5]     NCHAR (10) NULL,
        [e10]    NCHAR (10) NULL,
        [diesel] NCHAR (10) NULL,
        PRIMARY KEY CLUSTERED ([Id] ASC)
    );
    

    Möchte auf dem Chart drei Linien anzeigen lassen
    z.B e5 und date
    Wenn man nun auf Chart auf der eigenschaften und durch Datasource die Tabelle [2013] einbindet, kann man normalerweise unter eigenschaften->Series bei X value und Y values, die Gewünschten Daten auswählen.
    Problem: Bei der einen yachse kann ich alle Attribute wählen und bei der x lediglich ID und date 😞 aber möchte ja auf der f(x) e5 und deren preise und auf dr x achse date anzeigen lassen.

    hoffe ich drücke mich klar und verständlich aus 😕

    danke im voraus für eure Tipps

    grüße aus mainz



  • Wie verhält sich das ganze wenn du die zu verwendenden Spalten im Quellcode setzt? Ich habe das von dir beschriebene mal dementsprechend getestet und zumindest bei mir wird das Chart wie vorgestellt gefüllt.

    DataTable dtData = new DataTable();
    dtData.Columns.Add("Id", typeof(Int32));
    dtData.Columns.Add("Date", typeof(DateTime));
    dtData.Columns.Add("E5", typeof(String));
    dtData.Columns.Add("E10", typeof(String));
    dtData.Columns.Add("Diesel", typeof(String));
    
    for (int i = 0; i < 100; i++)
    {
      dtData.Rows.Add(new object[] { i+1, DateTime.Now.AddDays(i*-1), (125.3-i).ToString(), "10,5", "17,85" });
    }
    
    chart1.DataSource = dtData;
    chart1.Series[0].XValueMember = "Date";
    chart1.Series[0].YValueMembers = "E5";
    

    Auf dem Screenshot siehst du das Ergebnis.

    Order habe ich irgendetwas falsch verstanden?



  • Danke 🙂
    aber klappt bei mir irgendwie nicht
    Ich rufe aus eine DB folgende Tabelle auf.

    Ich möchte mit dieser ein Chart mit Multiple Lines erzeugen.

    Mein Chart hat den Namen = chart2013.

    CREATE TABLE [dbo].[2013] (
        [Id]     INT        IDENTITY (1, 1) NOT NULL,
        [date]   DATE       NULL,
        [e5]     NCHAR (10) NULL,
        [e10]    NCHAR (10) NULL,
        [diesel] NCHAR (10) NULL,
        PRIMARY KEY CLUSTERED ([Id] ASC)
    );
    // z.B diese Daten möchte ich haben 
    
    chart2013.DataSource = dtData;
    chart2013.Series[0].XValueMember = "Date";
    chart2013.Series[0].YValueMembers = "E5";
    
    chart2013.Series[1].XValueMember = "Date";
    chart2013.Series[1].YValueMembers = "E10";
    
    chart2013.Series[2].XValueMember = "Date";
    chart2013.Series[2].YValueMembers = "diesel";
    

    weiss das es so wie oben gezeigt nciht funktioniert, is lediglich welche Daten ich haben möchte.

    Danek im voraus

    Grüße
    Erzincan24



  • Hat sich zum Teil erledigt, danke nochmal für eure Hilfe

    Gruß
    Erzincan24 👍 😋



  • Was war denn nun deine Lösung? - Hattest du nicht genug Series?



  • Ja das auch, hab das Chart gelöscht und ein neues erzeugt und direkt drei Series Hinzugefügt. Trotzdessen, wird eine Serie falsch Dargestellt, obwohl es sich um Identische Daten handelt....aber naja bestimmt nur ne kleine Einstellung in den Eigenschaften 🙂

    Gruß
    Erzincan24 und danke nochmals


Anmelden zum Antworten