• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

ACCESS中的图片显示和插入问题!!!感激不尽!

fengyun14 2004-11-06 09:31:28
我想从我的ACCESS数据库中提取图片以及插入ACCESS数据库的OLE字段。

目前我的数据库中的OLE字段中有图片,现在我想把它提取出来,我参照了CSDN的一些帖子,我写道:
string connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
Application.StartupPath+"\\db1.mdb;";
OleDbConnection conn=new OleDbConnection(connStr);
conn.Open();
OleDbCommand cmd=new OleDbCommand("select 图片 from 类别 where 类别ID=1",conn);
OleDbDataReader reader=cmd.ExecuteReader();
reader.Read();
MemoryStream buf=new MemoryStream((byte[])reader[0]);
Image image=Image.FromStream(buf);
pictureBox1.Image=image;


可在编译时,系统在:
Image image=Image.FromStream(buf,true);
行,提示我说:

未处理的“System.ArgumentException”类型的异常出现在 system.drawing.dll 中。
其他信息: 使用了无效参数。

请问,我到底该怎样才能正确的显示数据库中原有的图片以及向ACCESS数据库中插入图像?
谢谢!
我已经参照了其他的方法,如:
转:

把图片读到pictureBox,再写入数据库

SqlConnection conn=new SqlConnection(@"data source=chenyuming2004\VSdotNET;uid=sa;pwd=cym;database=lhf");
conn.Open();
SqlCommand cmd=new SqlCommand("insert into fuser values ('1a','1b',@i)",conn);
byte[] ib=new Byte[60000];
FileStream fs=new FileStream(@"D:\windows temp\temp\1.jpg",FileMode.Open ,FileAccess.Read );
fs.Read(ib,0,60000);
cmd.Parameters.Add("@i",SqlDbType.Image,(int)fs.Length);
cmd.Parameters["@i"].Value=ib;
cmd.ExecuteNonQuery();
conn.Close();

-------------------------------------------------------
从数据库读图片到picturebox

SqlConnection conn=new SqlConnection(@"data source=chenyuming2004\VSdotNET;uid=sa;pwd=cym;database=lhf");
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;


但不行,谢谢
...全文
101 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
devfan 2004-11-10
mark
回复
minghui000 2004-11-10
a帮你up一下

+

留个位置学习

+

接分
回复
fengyun15 2004-11-09
图片存:
string connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
Application.StartupPath+"\\db1.mdb;";
//OleDbConnection conn=new OleDbConnection(connStr);
OleDbConnection conn=new OleDbConnection(Class1.conn);
MemoryStream s = new MemoryStream();
pictureBox1.Image.Save(s,System.Drawing.Imaging.ImageFormat.Bmp
byte[] b=s.ToArray();

s.Close();

OleDbCommand cm=new OleDbCommand("insert into 类别 (图片) values (@PersonImage)",conn);
System.Data.OleDb.OleDbParameter paramPersonImage = new OleDbParameter("@PersonImage", System.Data.OleDb.OleDbType.Binary);
paramPersonImage.Value = b;
cm.Parameters.Add(paramPersonImage);

conn.Open();
try
{
cm.ExecuteNonQuery();
}
catch(Exception ee)
{
MessageBox.Show(ee.ToString());
}
conn.Close();

图片取:
conn.Open();
OleDbCommand cmd=new OleDbCommand("select top 1 图片 from 类别 order by 类别ID desc",conn);
OleDbDataReader reader=cmd.ExecuteReader();

reader.Read();




MemoryStream buf=new MemoryStream((byte[])reader[0]);
Image image=Image.FromStream(buf,true);
pictureBox1.Image=image;
conn.Close();
回复
viena 2004-11-06
up
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-11-06 09:31
社区公告
暂无公告