3

我在转换为字节数组的 sql 表中有一个图像。当我单击包含该表的 dataGridView 中的记录时,如何在图片框中显示它?我需要实际代码。谢谢。这是代码我有转换:

private void button2_Click(object sender, EventArgs e)
{
    SqlConnection cn = new SqlConnection(@" Data Source=HOME-D2CADC8D4F\SQL;Initial Catalog=motociclete;Integrated Security=True");
    MemoryStream ms = new MemoryStream();
    pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

    byte[] pic_arr = new byte[ms.Length];
    ms.Position = 0;
    ms.Read(pic_arr, 0, pic_arr.Length);

    SqlCommand cmd = new SqlCommand("insert into motociclete(firma,model,poza,pret,anf,greutate,caprez,putere,garantie,stoc) values (@firma,@model,@poza,@pret,@anf,@greutate,@caprez,@putere,@garantie,@stoc)",cn);
    cmd.Parameters.AddWithValue("@firma", textBox3.Text);
    cmd.Parameters.AddWithValue("@model", textBox10.Text);
    cmd.Parameters.AddWithValue("@poza", pic_arr);
    cmd.Parameters.AddWithValue("@pret", textBox7.Text);
    cmd.Parameters.AddWithValue("@anf", textBox4.Text);
    cmd.Parameters.AddWithValue("@greutate", textBox9.Text);
    cmd.Parameters.AddWithValue("@caprez", textBox5.Text);
    cmd.Parameters.AddWithValue("@putere", textBox8.Text);
    cmd.Parameters.AddWithValue("@garantie", textBox6.Text);
    cmd.Parameters.AddWithValue("@stoc", textBox2.Text);

    cn.Open();

    try
    {
        int rez = cmd.ExecuteNonQuery();
        if (rez > 0)
        {
            MessageBox.Show("Adaugare reusita ");
        }
    }
    catch (Exception)
    {
        MessageBox.Show("Inregistrarea exista deja ");
    }
    finally
    {
        cn.Close();
        obj.loaddata();
        this.Close();
    }
}
4

1 回答 1

5

假设这picturebyte[]从数据库中获取的:

byte[] picture = // read from db
PicBoxImage.Image = Image.FromStream(new MemoryStream(picture));                                
PicBoxImage.Refresh();
于 2013-05-20T05:38:12.180 回答