Aus Datenbank(MSSQL) mit C# zeichnen

Kai_Jack

Erfahrenes Mitglied
Hallo Freunde,
ich brauche Hilfe, bin Anfänger. Ich möchte gerne aus einer Datenbank die ich mit MSSQL erstellt habe Koordinaten auslesen und diese in C# mit GDI+ zeichnen. Ich kriege das auslesen hin, aber das Konvertieren der Daten zum Zeichnen klappt nicht. Folgendes habe ich bisher erreicht: Das auskommentierte war nur ein Versuch, ob das Zeichnen überhaupt klappt und ist natürlich nicht richtig.

private void pictureBox1_Click(object sender, System.EventArgs e)
{
Graphics g = Graphics.FromHwnd(this.pictureBox1.Handle);

//PointClass pt1 = new PointClass();

//PointClass pt2 = new PointClass();

//g.DrawLine(Pens.Blue,pt1,pt2);


SqlConnection dc = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;"+"Initial Catalog=Test");

dc.Open();

SqlCommand comm1 = dc.CreateCommand();
SqlCommand comm2 = dc.CreateCommand();


comm1.CommandText = "SELECT y_Koor from Punkt WHERE Punkt_ID = '1'";
comm2.CommandText = "SELECT x_Koor from Punkt WHERE Punkt_ID = '1'";
SqlDataReader read = comm1.ExecuteReader();

//g.DrawLine(Pens.Blue,pt1,pt2);

this.sqlDataAdapter1.Fill(this.mein_Daten_Set21,0,0,"Punkte_DB");

g.DrawLine(Pens.Blue,5,5,100,100);
this.sqlSelectCommand1.CommandText = (!)
HIER KOMME ICH NICHT WEITER :suspekt:
}

Vielen Dank für die Hilfe :)
Jack
 
Hi!

Ich weiß nicht, ob ich dich richtig verstanden habe, aber ich versuche es mal.

Ich gehe davon aus, dass deine Koordinaten in der DB als int-Werte vorliegen.
Code:
private void pictureBox1_Click(object sender, System.EventArgs e)
{
  SqlConnection conn = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;"+"Initial Catalog=Test");

  SqlCommand comm = new SqlCommand("SELECT x_Koor, y_Koor FROM punkt WHERE punkt_id=1",conn);

  SqlDataReader datread = comm.ExecuteReader();

  Graphics g = this.pictureBox1.CreateGraphics();

  if(datread.Read())
  {
     //Daten vorhanden
     int x = datread.GetInt32(0);
     int y = datread.GetInt32(1);
     //hier könnte man auch int x = (int)datread["x_Koor"]; machen

    g.DrawLine(Pens.Blue, 0, 0, x, y); //oder was auch immer du zeichnen willst
  }
  else
  {
    //keine Daten vorhanden
    //Fehler
  }

  datread.Close();
  conn.Close();
}

So sollte es vom Prinzip her funktionieren. Ob die Koordinaten in der DB jetzt passend für dein Fenster sind, weiß ich nicht.

mfg broetchen

P.S.: Benutz bitte das Code-Tag, sieht besser aus und ist lesbarer ;-)
 
Vielen Dank, es hat nach einigen Fehlversuchen geklappt, aber dein Code war richtig, hatte was in der Datenbank falsch.

Was ist das in Klammern, also die [0] und die [1], welche Bedeutung hat das ?
Das ToolTip welches die Erklärung liefert, ist etwas komisch formuliert.

Code:
int x = read.GetInt32(0);
	   int y = read.GetInt32(1);

Noch eine Frage:

Kannst du mir einen Tip geben wie ich eine Linie Zeichne und dann diese MausKoordinaten fange und in die Datenbank schreiben kann

Besten Dank nochmal für die superfaste Hilfe
Jack :)
 
Die Nummern in den Klammern sind die Spalten-Indizes (also aus welcher Spalte er das int fischen soll).
Daher die Version mit dem Indexer, das funktioniert auch.
 
Zurück