Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie lade ich ein Bild von SQL Server in das Bildfeld?

Sie haben die Bildinhalte nie in die Datenbank hochgeladen. Das ist nur der Dateiname.

Nehmen wir als Beispiel an, dass Sie einen Dateipfad haben, mit dem Sie arbeiten können (angesichts des Inhalts der Frage scheint dies der Fall zu sein). In Ihrer Bewerbung würden Sie dies in folgendem Format in die Datenbank hochladen:

byte[] image = File.ReadAllBytes("D:\\11.jpg");

SqlCommand sqlCommand = new SqlCommand("INSERT INTO imageTest (pic_id, pic) VALUES (1, @Image)", yourConnectionReference);
sqlCommand.Parameters.AddWithValue("@Image", image);
sqlCommand.ExecuteNonQuery();

Bitte denken Sie daran, dass Ihr pic Feld wird höchstwahrscheinlich den Datentyp ändern müssen. Ein üblicher Typ für diese Informationen ist VARBINARY .

Der nächste Teil liest die Datei in eine PictureBox ein. Dazu müssen Sie die Daten AUSWÄHLEN:

SqlDataAdapter dataAdapter = new SqlDataAdapter(new SqlCommand("SELECT pic FROM imageTest WHERE pic_id = 1", yourConnectionReference));
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);

if (dataSet.Tables[0].Rows.Count == 1)
{
    Byte[] data = new Byte[0];
    data = (Byte[])(dataSet.Tables[0].Rows[0]["pic"]);
    MemoryStream mem = new MemoryStream(data);
    yourPictureBox.Image= Image.FromStream(mem);
} 

Und darum soll es gehen. Vielleicht möchten Sie bessere Sicherheitsüberprüfungen durchführen, aber das sollte Ihnen den Einstieg erleichtern.