Ich habe eine Datenbank, wo ich mehrere Zeilen speichere mit seinen Punkten, Farbe, Breite, usw. Ich weiß, dass die Punkte gespeichert werden, weil ich die SQL-Tabelle überprüft und es ist da drin. Wenn ich jedoch versuche, diese Punkte neu zu laden, wird nur die letzte Zeile geladen, die ich gespeichert habe. Ich kann nicht herausfinden, warum das so ist.kann nicht mehr als ein SQL-Zeilendaten zurückgeben # mit c
private void opendbtestToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
using (SqlConnection conn = new SqlConnection("blahblabhblah; "))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("SELECT * FROM Line", conn))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Shape Line = new Line(); // New line
Line.readSQL();
shapeList.Add(Line);
Invalidate();
}
}
}
conn.Close();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
die readSQL Funktion
public override void readSQL()
{
try
{
using (SqlConnection conn = new SqlConnection("blahblahblah; "))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("SELECT * FROM Line", conn))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader != null)
{
while (reader.Read())
{
// string s = (reader["ID"].ToString());
int x1 = Convert.ToInt32(reader["x1"]);
int x2 = Convert.ToInt32(reader["x2"]);
int y1 = Convert.ToInt32(reader["y1"]);
int y2 = Convert.ToInt32(reader["y2"]);
Pt1 = new Point(x1, y1);
Pt2 = new Point(x2, y2);
PenWidth = Convert.ToInt32(reader["Width"]);
PenColor = Color.FromArgb(Convert.ToInt32(reader["Color"]));
}
}
}
}
conn.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
// MessageBox.Show(PenColor.ToString());
// MessageBox.Show(PenWidth.ToString());
}
}
, wie ich auf die Datenbank
public override void writeSQL()
{
using (SqlConnection conn = new SqlConnection("blahblahblah "))
{
using (SqlCommand comm = new SqlCommand())
{
comm.Connection = conn;
comm.CommandType = CommandType.Text;
comm.CommandText = "INSERT INTO Line (x1,x2,y1,y2, Width, Color) VALUES (@val1, @val2, @val3, @val4, @val5, @val6)";
comm.Parameters.AddWithValue("@val1", Pt1.X);
comm.Parameters.AddWithValue("@val2", Pt2.X);
comm.Parameters.AddWithValue("@val3", Pt1.Y);
comm.Parameters.AddWithValue("@val4", Pt2.Y);
comm.Parameters.AddWithValue("@val5", PenWidth);
comm.Parameters.AddWithValue("@val6", PenColor.ToArgb());
try
{
conn.Open();
comm.ExecuteNonQuery();
MessageBox.Show("Insertion complete");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "fuuuu");
}
}
conn.Close();
}
}
Erstellen Sie ein Objekt und fügen Sie es einer Sammlung hinzu – Sajeetharan
Wo Pt1, Pt2 zugewiesen? Warum gibt es zwei SqlConnection/Command/Reader? –
Ich habe den ursprünglichen Beitrag aktualisiert, um es ein wenig klarer zu machen. Es gibt zwei sqlconnections/command/reader, weil sie sich in verschiedenen Dateien befinden. – Vince