现在知道在Access中手动插入OLE对象和代码存入OLE字段是不同的,代码方式存入的比较好读取,可是我现在是用手动插入的,读取的时候出现问题,那么现在想请教下:用C#怎么读[b]手动插入的OLE字段[/b]中的图片,比如:JPG的。并显示到PictureboX里面。查了好多帖子,没发现这个解决办法。
解决方案 »
- 怎样创建显示图片的web部件
- 吞食蛇要.net写的
- 怎么把一个数组或图片转成byte[]通过Socket发送出去
- 那里有Managed C++ wrapper for ZLib(不是zlib.dll,Managed C++就是托管环境c++编译的.net平台dll)
- 在winForm窗体上,我在一个Form上保存了数据,同时关闭了这个Form,数据在显示在另外一个窗体dataGrid上,怎么及时更新dataGrid!
- 帮个忙,把按钮与快捷键绑定到一起呢,这样语句怎么写呢?
- Developer Express 第三方控件使用说明,英文的看着头晕!100 分
- IP地址问题,90分。
- 有谁能描述C#做数据库应用开发的优势及不好的地方吗?
- win7下如何让托盘图标显示.
- 正则匹配小问题
- 求介绍大数据量画图的组件
int fileLength = FileUpload1.PostedFile.ContentLength;
byte[] buffer= new byte[fileLength];
fs.Read(buffer, 0, fileLength);command.Parameters.AddWithValue("@Photo", buffer);
二:如果我的数据库里面的文件既有手动存入的又有代码读的,那么我如何判断一个文件是那种方式存入的呢?谢谢!
我的代码是:
public static Image GetImage(string sqlStr, string nameOleFiled)
{
OleDbDataReader Rd = GetExecuteReader(sqlStr); byte[] bData = (byte[])Rd[nameOleFiled];//这里就出错了,怎么执行去文件头呢?
bData = GetImageBytesFromOLEField(bData);//这里是去文件头的函数
try
{
MemoryStream ms = new MemoryStream(bData);
Image iImage=Image.FromStream(ms,true);
return iImage;
}
catch (System.IO.IOException e)
{
throw new Exception(e.Message + "Read image data error!");
}
}
报的错误是:
未处理的“System.InvalidOperationException”类型的异常出现在 System.Data.dll 中。
其他信息: 不存在此行/列的数据。
这个错误和开始的一样,我想也是OLE字段读取的问题。头一步没有读出Byte[]那么怎么执行去文件头呢?
请问:这个问题您解决了吗?能不能详细指点一下。谢谢!