首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

数据库里的图片读不出来.该如何解决

2012-01-13 
数据库里的图片读不出来.我用下面的代码读取Northwind的Employee表的图片,调试报错:参数无效。不知道哪位大

数据库里的图片读不出来.
我用下面的代码读取Northwind的Employee表的图片,调试报错:参数无效。
不知道哪位大侠能告知解决方法,感激不尽.
protected   void   Page_Load(object   sender,   EventArgs   e)
        {              
                SqlConnection   conn   =   new   SqlConnection(@ "Data   Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated   Security=True;User   Instance=True ");
                SqlCommand   cmd   =   new   SqlCommand( "select   [Photo]   from   Employees   where   EmployeeId=1 ",   conn);
                conn.Open();
                SqlDataReader   read   =   cmd.ExecuteReader();
                read.Read();
                byte[]   bytes   =   (byte[])read[ "Photo "];
                read.Close();
                conn.Close();
                MemoryStream   ms   =   new   MemoryStream();
                ms.Write(bytes,   0,   bytes.Length);
                *System.Drawing.Image   img   =   System.Drawing.Image.FromStream(ms);  
        }
打星号的地方报错。

[解决办法]
这个表比较特殊的,你要其它数据库的表就可以。

或者
byte[] bytes = (byte[])read[ "Photo "].Substring(某个数字);
这个数字我忘记了,好象是64,还是多少
[解决办法]
找到了,Employee 的 photo 里保存的是 gif 格式,因此 有 78 的偏移量!

Pub 库就没这事儿!

// 78 is the size of the OLE header
// for Northwind images.
// There 's no header in PUBS as PUBS
// just contains the raw image bits.
int offset = 78;

详见!
http://www.ftponline.com/vsm/2002_07/online/hottips/esposito/

热点排行