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\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; } }
因篇幅问题不能全部显示,请点此查看更多更全内容