c sharp的图片框图片

时间:2012-05-04 15:46:33

标签: c# sql-server

我正在使用以下代码将图片框图像保存到数据库。只是我需要一些代码来将图片框图像从数据库加载到图片框。

DialogResult dr = openFileDialog1.ShowDialog();
        switch (dr)
        {
            case DialogResult.Cancel:
                break;
            case DialogResult.OK:
                pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
                sql = new SqlConnection(@"Data Source=PC-PC\PC;Initial Catalog=Test;Integrated Security=True");
                cmd = new SqlCommand();
                cmd.Connection = sql;
                cmd.CommandText = ("insert [Entry] ([Image]) values (@Image)");
                MemoryStream stream = new MemoryStream();
                pictureBox1.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                byte[] image = stream.ToArray();
                cmd.Parameters.AddWithValue("@Image", image);
                try
                {
                    sql.Open();
                    cmd.ExecuteNonQuery();
                }
                finally
                {
                    sql.Close();
                }
                break;

1 个答案:

答案 0 :(得分:0)

这里有两个代码:http://www.codeproject.com/Articles/25956/Sending-Receiving-PictureBox-Image-in-C-To-From-Mi

button2_Click用于检索图像:

    SqlConnection connect = new SqlConnection
                     ("Server=.;database=PictureDb;integrated security=true");
    SqlCommand command = new SqlCommand
                        ("select fldPic from tblUsers where fldCode=1", connect);
    //for retrieving the image field in SQL SERVER EXPRESS
    //Database you should first bring
    //that image in DataList or DataTable
    //then add the content to the byte[] array.
    //That's ALL!
    SqlDataAdapter dp = new SqlDataAdapter(command);
    DataSet ds = new DataSet("MyImages");

    byte[] MyData = new byte[0];

    dp.Fill(ds, "MyImages");
    DataRow myRow;
    myRow = ds.Tables["MyImages"].Rows[0];

    MyData = (byte[])myRow["fldPic"];

    MemoryStream stream = new MemoryStream(MyData);
    //With the code below, you are in fact converting the byte array of image
    //to the real image.
    pictureBox2.Image = Image.FromStream(stream);