sql >> Databasteknik >  >> RDS >> Sqlserver

Hur laddar man en bild från SQL Server till bildrutan?

Du laddade aldrig upp bildinnehållet till databasen. Det är bara filnamnet.

Säg, som ett exempel, att du har en filsökväg att arbeta med (det verkar du ha, med tanke på frågans innehåll). I din ansökan skulle du ladda upp detta till databasen enligt detta format:

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

Tänk på att din pic fältet kommer mer än troligt att behöva ändra datatyp. En vanlig typ av denna information är VARBINARY .

Nästa del är att läsa in filen i en PictureBox. För detta måste du VÄLJA ut data:

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

Och det borde handla om det. Du kanske vill göra bättre säkerhetskontroller, men detta borde hjälpa dig att komma igång.



  1. Tillåt icke-ascii-tecken i MySQL-databasen

  2. Ta bort dubbletter av rader i Oracle SQL och lämna de senaste posterna

  3. Hur Asind() fungerar i PostgreSQL

  4. Kan jag generera Squeryl-dataobjekt automatiskt för att spegla ett befintligt MySql-schema?