sql >> Database >  >> RDS >> Sqlserver

Hoe een afbeelding van SQL Server in de afbeeldingsbox te laden?

U heeft de inhoud van de afbeelding nooit geüpload naar de database. Dat is alleen de bestandsnaam.

Stel, als voorbeeld, dat je een bestandspad hebt om mee te werken (het lijkt erop dat je dat doet, gezien de inhoud van de vraag). In uw aanvraag zou u dit in dit formaat naar de database uploaden:

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();

Houd er rekening mee dat uw pic veld zal hoogstwaarschijnlijk het gegevenstype moeten wijzigen. Een veelgebruikt type voor deze informatie is VARBINARY .

Het volgende deel is het inlezen van het bestand in een PictureBox. Hiervoor moet je de gegevens SELECTEREN:

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);
} 

En daar zou het over moeten gaan. Misschien wilt u betere veiligheidscontroles uitvoeren, maar dit zou u op weg moeten helpen.



  1. Oracle-equivalent van Postgres' DISTINCT ON?

  2. Synchroniseer de lokale Microsoft MySQL-database met de externe mysql-database die dagelijks wordt gepland

  3. Hoe vraag ik een mysql-veld aan?

  4. MySQL-triggers - NA INSERT trigger + UDF sys_exec() probleem