標籤:file exception 空間名 build builder button ldb and length
#region 用於在PictureBox控制項中顯示選擇的圖片
/// <summary>
/// 用於在PictureBox控制項中顯示選擇的圖片
/// </summary>
/// <param name="openF">映像名</param>
/// <param name="MyImage">pictureBox控制項ID</param>
public void Read_Image(OpenFileDialog openF, PictureBox MyImage)//顯示選擇的圖片
{
//指定OpenFileDialog控制項開啟的檔案格式
openF.Filter = "*.jpg|*.jpg|*.bmp|*.bmp";
if (openF.ShowDialog()==DialogResult.OK)
{
try
{
//將圖片檔案存入到PictureBox控制項中
MyImage.Image = System.Drawing.Image.FromFile(openF.FileName);
}
catch (Exception)
{
//彈出錯誤資訊
MessageBox.Show("您選擇的圖片不能被讀取或檔案類型不對!","錯誤",MessageBoxButtons.OK,MessageBoxIcon.Warning);
throw;
}
}
}
#endregion
#region 用於將圖片以二進位形式存入資料庫中
/// <summary>
/// 用於將圖片以二進位形式存入資料庫中
/// </summary>
/// <param name="FilmID">影片ID</param>
/// <param name="openF"></param>
public void SaveImage(string FilmID, OpenFileDialog openF)//將圖片以二進位存入資料庫中
{
string strimg = openF.FileName.ToString(); //記錄圖片的所在路徑
FileStream fs = new FileStream(strimg, FileMode.Open, FileAccess.Read); //將圖片以檔案流的形式進行儲存
BinaryReader br = new BinaryReader(fs);
byte[] imgBytesIn = br.ReadBytes((int)fs.Length);//將流讀入到位元組數組中
SqlConnection conn = sqlhelper.getcon();
conn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("update T_Film Set [email protected] where F_FId=" + FilmID);
SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
cmd.Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;
cmd.ExecuteNonQuery();
conn.Close();
}
#endregion
#region 用於將圖片從資料庫中取出並顯示在PictureBox控制項中
/// <summary>
/// 用於將圖片從資料庫中取出並顯示在PictureBox控制項中
/// </summary>
/// <param name="FilmID">影片ID</param>
/// <param name="pb">PictureBox控制項ID</param>
public void Get_Image(string FilmID, PictureBox pb)//將圖片從資料庫中取出
{
byte[] imagebytes = null;
SqlConnection conn = sqlhelper.getcon();
conn.Open();
SqlCommand com = new SqlCommand("select * from T_Film where F_FId=‘" + FilmID + "‘", conn);
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
imagebytes = (byte[])dr.GetValue(10);
}
dr.Close();
conn.Close();
MemoryStream ms = new MemoryStream(imagebytes);
Bitmap bmpt = new Bitmap(ms);
pb.Image = bmpt;
}
#endregion
上面三個分別為公用類,第一個為開啟對話方塊,第二個為將映像以二進位存入資料庫,第三個為從資料庫中讀取出來。
在表單代碼中, Mymenu.Get_Image(FilmID, picboxPhoto);直接用就可以了(Mymenu)為公用類空間名稱
C#_圖片存取資料庫Winform