Heim  >  Artikel  >  Datenbank  >  PictureBox中的Image对象转存到数据库

PictureBox中的Image对象转存到数据库

WBOY
WBOYOriginal
2016-06-07 15:48:031204Durchsuche

这个是在百度知道上回答问题时看到的,一时没有做出来,看了一些资料才弄清楚的。 主要有两个点: 1.对流的操作不熟悉,不知道图片Image对象是可以”保存“到MemoryStream中的; image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg); 2.二进制数

这个是在百度知道上回答问题时看到的,一时没有做出来,看了一些资料才弄清楚的。

主要有两个点:

1.对流的操作不熟悉,不知道图片Image对象是可以”保存“到MemoryStream中的;

image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);

2.二进制数据插入到数据库的操作不清楚。

SqlParameter param = new SqlParameter("ImgData", SqlDbType.VarBinary, imageBytes.Length);
param.Value = imageBytes;
cmd.Parameters.Add(param);

下面贴上代码

private void button1_Click(object sender, EventArgs e)
        {
            byte[] imageBytes = GetImageBytes(pictureBox1.Image);

            string connStr = "SQL Server连接字符串";

            using (SqlConnection conn = new SqlConnection(connStr))
            {
                string sql = "Insert Into T_Img Values (@ImgData) ";
                using (SqlCommand cmd = new SqlCommand(sql))
                {
                    SqlParameter param = new SqlParameter("ImgData", SqlDbType.VarBinary, imageBytes.Length);
                    param.Value = imageBytes;
                    cmd.Parameters.Add(param);

                    cmd.Connection = conn;
                    conn.Open();
                    int i = cmd.ExecuteNonQuery();
                    MessageBox.Show(i.ToString());
                }
            }
        }
        private byte[] GetImageBytes(Image image)
        {
            MemoryStream mstream = new MemoryStream();
            image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);
            byte[] byteData = new Byte[mstream.Length];
            mstream.Position = 0;
            mstream.Read(byteData, 0, byteData.Length);
            mstream.Close();
            return byteData;
        }

                   

                                              PictureBox中的Image对象转存到数据库

上传了源代码:http://download.csdn.net/detail/frombegintoend/4403728

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn