sql 圖片的存儲

 public void imgToDB(string sql)
        {   //參數sql中要求保存的imge變量名稱爲@images
            //調用方法如:imgToDB("update UserPhoto set Photo=@images where UserNo='" + temp + "'");
            FileStream fs = File.OpenRead(t_photo.Text);
            byte[] imageb = new byte[fs.Length];
            fs.Read(imageb, 0, imageb.Length);
            fs.Close();
            SqlCommand com3 = new SqlCommand (sql,con);
            com3.Parameters.Add("@images", SqlDbType.Image).Value = imageb;
            if (com3.Connection.State == ConnectionState.Closed)
                com3.Connection.Open();
            try
            {
                com3.ExecuteNonQuery();
            }
            catch
            { }
            finally
            { com3.Connection.Close(); }
        }

數據庫中讀出圖片並顯示在picturebox中:

private void ShowImage(string sql)
     {
     //調用方法如:ShowImage("select Photo from UserPhoto where UserNo='" + userno +"'");
     SqlCommand cmd = new SqlCommand(sql, conn);
     conn.Open();
     byte[] b= (byte[])cmd.ExecuteScalar();
     if (b.Length 〉 0)
     {
     MemoryStream stream = new MemoryStream(b, true);
     stream.Write(b, 0, b.Length);
     pictureBox1.Image = new Bitmap(stream);
     stream.Close();
     }
     conn.Close();
     }

方法二:當在dg中選中某行時:
  private void dg_MouseUp(object sender, MouseEventArgs e)
        {
            //整行選擇
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {//用戶編號,姓名,性別,身份證號,籍貫,學院,系所,校區,部門,電話,照片
                 //顯示相片
                object imgobj=dg[10, dg.CurrentRow.Index].Value;
                if (imgobj != null && !Convert.IsDBNull(imgobj))
                {
                    byte[] imgb = (byte[])imgobj;
                    MemoryStream memStream = new MemoryStream(imgb);

 try
                    {
                        Bitmap myimge = new Bitmap(memStream);
                        this.pictureBox1.Image = myimge;
                    }
                    catch
                    {
                        DB.msgbox("從數據庫讀取相片失敗!");
                    }
                }
                else
                    pictureBox1.Image = null;
            }
        } 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章