开发环境 VS2010+Access
在access数据库中新建数据库 并新建一张表 建两个字段 IMAGENAME,IMANGEBINARY
新建工程->winform程序
在窗体上 拖拽一个button按钮和一个picturebox
代码
private void button1_Click(object sender, EventArgs e) { using (OpenFileDialog dialog = new OpenFileDialog()) { dialog.Filter = "jpg|*.jpg"; dialog.Multiselect = false; if (dialog.ShowDialog() == DialogResult.OK) { string fImageName = Path.GetFileNameWithoutExtension(dialog.FileName); FileStream fs = new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] fInputImageBinary = br.ReadBytes((int)fs.Length); br.Close(); fs.Close(); // 保存到数据库 if (this.InsertImageToAccess(fImageName, fInputImageBinary) > 0) { //MessageBox.Show("插入成功"); } // 从数据库获取图片并显示到 pictureBox1 Byte[] fOutputImageBinary = this.GetImageFromAccess(fImageName); MemoryStream ms = new MemoryStream(fOutputImageBinary); pictureBox1.Image = Image.FromStream(ms); } } } public int InsertImageToAccess(String fImageName, Byte[] fImageBinary) { // Access 表// 字段// ImageName 文本// ImageBinary OLE 对象 using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\RacialCarDB.mdb")) { OleDbCommand fInsertCommand = new OleDbCommand(); fInsertCommand.Connection = conn; fInsertCommand.CommandText = "update tb_carBrandInfo set logo = ? where qcpp = ?"; fInsertCommand.Parameters.Add("@logo", OleDbType.Binary, fImageBinary.Length).Value = fImageBinary; fInsertCommand.Parameters.Add("@qcpp", OleDbType.VarChar).Value = fImageName; conn.Open(); return fInsertCommand.ExecuteNonQuery(); } } public Byte[] GetImageFromAccess(String fImageName) { using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\RacialCarDB.mdb")) { OleDbCommand fSelectCommand = new OleDbCommand(); fSelectCommand.Connection = conn; fSelectCommand.CommandText = "SELECT logo FROM tb_carBrandInfo WHERE qcpp = @qcpp"; fSelectCommand.Parameters.Add("@qcpp", OleDbType.VarChar).Value = fImageName; conn.Open(); object o = fSelectCommand.ExecuteScalar(); return (o == null ? null : (Byte[])o); } }