Laden...

Chart richtig darstellen

Erstellt von json1948 vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.341 Views
J
json1948 Themenstarter:in
37 Beiträge seit 2015
vor 8 Jahren
Chart richtig darstellen

Hallo leute,

ich stehe vor einem Problem. Ich beziehe eine Tabelle aus einer Datenbank und möchte diese Daten in einer Chart ausgeben.


SqlConnection con1 = new SqlConnection(mystring);
SqlCommand com1 = new SqlCommand("SELECT * FROM [tabelle] WHERE user = '" + perso1 + "' And haus = '" + haus1 + "'", con1);
SqlDataReader pep;
con1.Open();
pep=com1.ExecuteReader();

mychart.DataBindTable(pep);
mychart.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;
mychart.Series[1].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;
mychart.Series[2].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;

            

Bis hierher zeigt er in meiner Chart 3 Fastlines richtig an. Aber ich möchte dass diese 3 Fastlines nach einem Bestimmten X-Wert auf der X-Achse laufen.

In meinem Falls wäre das z.b. die Uhrzeit. Diese habe ich auch in meiner Database. Wie schaffe ich es, dass die X-Achse mit der Zeit aus meiner Datenbank beschriftet ist?

16.825 Beiträge seit 2008
vor 8 Jahren

Was bei Deinem Code sofort aufschlägt ist Dein SQL-Injection-gefährderter Code.
Wurde IIRC Dir aber schon ein paar mal gesagt: [Artikelserie] SQL: Parameter von Befehlen

Ansonsten erster Google Treffer auf der Suche nach "windows forms chart x-axis"
How do you set DateTime range on X axis for System.Windows.Forms.DataVisualization.Charting?

J
json1948 Themenstarter:in
37 Beiträge seit 2015
vor 8 Jahren

Also ich versuche gerade meine X und Y Achsen mit Daten aus der Datenbank zu bestücken.

Folgender Fehler tritt auf:

Fehlermeldung:
Ein Diagrammelement mit dem Namen 'person' konnte in 'SeriesCollection' nicht gefunden werden.

mein Code:


SqlConnection con1 = new SqlConnection(mystring);
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM [tabelle] WHERE userid = '" + userid + "' And name = '" + name + "'", con1);

DataTable dt = new DataTable();
adapter.Fill(dt);
mychart.Series["person"].Points.AddXY(dt.Rows[1][0] , dt.Rows[2][0]);

Wenn ich den Fehler richtig verstanden habe, heisst es, dass er die Serie "person " in den Chart-Eigenschaften nicht findet. Aber ich habe bei chart->Properities->Series bereits ein person angelegt...

J
251 Beiträge seit 2012
vor 8 Jahren

Was sagt den der Debugger? ( [Artikel] Debugger: Wie verwende ich den von Visual Studio? )
Ein Breakpoint auf die Zeile und schon kann man prüfen was in der Collection ist, wenn ein fehlendes Element das Problem ist.