例1
代码如下 | 复制代码 |
private void button2_Click_1(object sender, System.EventArgs e) { string pathName; if (this.openFileDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK) { pathName = this.openFileDialog1.FileName; System.Drawing.Image img = System.Drawing.Image.FromFile(pathName); this.pictureBox1.Image = img; //将图像读入到字节数组 System.IO.FileStream fs = new System.IO.FileStream(pathName,System.IO.FileMode.Open,System.IO.FileAccess.Read); byte[] buffByte = new byte[fs.Length]; fs.Read(buffByte,0,(int)fs.Length); fs.Close(); fs = null; //建立Command命令 string comm = @"Insert into table1(img,name) values(@img,@name)"; this.sqlCommand1 = new System.Data.SqlClient.SqlCommand (); this.sqlCommand1.CommandType = System.Data.CommandType.Text ; this.sqlCommand1.CommandText = comm; this.sqlCommand1.Connection = this.sqlConnection1 ; //创建Parameter this.sqlCommand1.Parameters.Add("@img",System.Data.SqlDbType.Image); this.sqlCommand1.Parameters[0].Value =buffByte; this.sqlCommand1.Parameters.Add("@name",System.Data.SqlDbType.VarChar); this.sqlCommand1.Parameters[1].Value =pathName.Substring(pathName.LastIndexOf("")+1); try { this.sqlConnection1.Open(); this.sqlCommand1.ExecuteNonQuery(); this.sqlConnection1.Close(); } catch(System.Exception ee) { MessageBox.Show(ee.Message ); } buffByte = null; this.FillListBox(); } |
读取:
从数据库读图片到picturebox
代码如下 | 复制代码 |
conn.Open(); SqlCommand cmd=new SqlCommand("select 照片 from fuser where password='1b'",conn); SqlDataReader reader=cmd.ExecuteReader(); reader.Read(); MemoryStream buf=new MemoryStream((byte[])reader[0]); Image image=Image.FromStream(buf,true); pictureBox1.Image=image; |
例2
图片保存到数据库的方法:
代码如下 | 复制代码 |
public void imgToDB(string sql) |
数据库中读出图片并显示在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; } } |