CS0029: 无法将类型“byte[]”隐式转换为“System.Drawing.Image”

时间:2021-06-30 11:48:18
products pro = new products();//引用products类

//上传图片
if (uploadFile.PostedFile.FileName != "")
            {                   
                //----------- update图片
                
                 .......
               .....
                //下面是传图片
                  Stream imagedatastream;
                imagedatastream = Request.Files["uploadFile"].InputStream;
                int imagedatalen = Request.Files["uploadFile"].ContentLength;
                string imagedatatype = Request.Files["uploadFile"].ContentType;

                byte[] image = new byte[imagedatalen];
                imagedatastream.Read(image, 0, imagedatalen);


                 pro.proimage = image;
                 pro.product_add();
           }


product_add方法:



public Image proimage;//申明proimage

public bool product_add()
        {
            SqlParameter[] Params = new SqlParameter[18];
            。。。
              。。。
            Params[17] = db.MakeInParam("@ProductPicture", SqlDbType.Image, 1000, proimage);
            int count = -1;
            count = db.RunProc("product_add", Params);//执行product_add存储过程
            if (count > 0)
                return true;
            else return false;
        }


编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误信息: CS0029: 无法将类型“byte[]”隐式转换为“System.Web.UI.WebControls.Image”
源错误:

 

行 283:                //Bitmap bm = (Bitmap)Image.FromStream(ms);
行 284:
行 285:                pro.proimage = image;行 286:
行 287:
 

源文件: e:\www\njut_c2c\product_add.aspx.cs    行: 285 



显示详细的编译器输出:


C:\Program Files\Microsoft Visual Studio 8\Common7\IDE> "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library /utf8output /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\assembly\dl3\520c0345\001b4bea_73e0c701\FredCK.FCKeditorV2.DLL" /R:"C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Code.6dkny_u-.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\assembly\dl3\421b2272\00ec3307_53fac501\Microsoft.Web.UI.WebControls.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Design\2.0.0.0__b03f5f7f11d50a3a\System.Design.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /R:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_6btnn1v4.dll" /out:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.dll" /D:DEBUG /debug+ /optimize- /win32res:"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\sjbfnvn7.res" /w:4 /nowarn:1659;1699  "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.4.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.17.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.1.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.10.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.19.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.2.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.8.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.12.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.14.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.5.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.7.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.6.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.11.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.0.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.3.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.9.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.13.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.18.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.16.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.20.cs" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\njut_c2c\00c74ea8\76daac43\App_Web_sjbfnvn7.15.cs"


Microsoft (R) Visual C# 2005 编译器 版本 8.00.50727.42
用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
版权所有 (C) Microsoft Corporation 2001-2005。保留所有权利。

e:\www\njut_c2c\Order_Detail.aspx.cs(13,7): warning CS0105: “System.Data.SqlClient”的 using 指令以前在此命名空间中出现过
e:\www\njut_c2c\product_add.aspx.cs(285,32): error CS0029: 无法将类型“byte[]”隐式转换为“System.Web.UI.WebControls.Image”

 



12 个解决方案

#1


各位大侠救命啊。。。。小弟再次谢过了!

#2


较早前,Insus.NET曾回复一个网友的问题,似乎有点相似,请参考:

http://topic.csdn.net/u/20071216/10/1dc52acf-e7ef-4267-ae78-a085de2b41d4.html

另外下帖是Insus.NET录制的影片,是Image以二制制上传至sql中,并如何把二制的Image显示于网页上的影片,请参考:
http://download.csdn.net/source/323966

#3


public   Image   proimage;和 SqlDbType.Image应该不是一回事吧. Image是控件,不是数据类型. SqlDbType.Image直接对应成byte[]试试

#4


谢谢2楼跟三楼啊!小弟我试试。。。

#5


类型不一致
如果你用的是FileUpload控件可以判断它的HasFile属性 来知道是否有文件.
还需要判断扩展名为图片格式

#6


=好像不行,得Load或什么吧

#7


你可能需要把pro.proimage定义成Byte[]类型的,而不是System.Web.UI.WebControls.Image,这是个控件类。

#8


pro.proimage定义成Byte[]类型的话,下面Params[17] = db.MakeInParam("@ProductPicture", SqlDbType.Image, 1000, proimage);这两怎么写呢?

#9


不行的呀。。。SOS

#10


byte[] s = new byte[10];
SqlParameter ss = new SqlParameter("aa", s);

或者

byte[] s = new byte[10];
SqlParameter ss = new SqlParameter("aa",SqlDbType.Image);
ss.Value = s;

都是合法的呀, 是不是 db.MakeInParam函数缺少对应的参数重载?

#11


问题解决拉。。。
public   Image   proimage;//申明proimage 
===》public byte[] proimage;
这样就好了!原来是类型搞错了!

可是Params[17]   =   db.MakeInParam("@ProductPicture",   SqlDbType.Image,   1000,   proimage); 
这里面的大小怎么确定啊?

#12


支持

#1


各位大侠救命啊。。。。小弟再次谢过了!

#2


较早前,Insus.NET曾回复一个网友的问题,似乎有点相似,请参考:

http://topic.csdn.net/u/20071216/10/1dc52acf-e7ef-4267-ae78-a085de2b41d4.html

另外下帖是Insus.NET录制的影片,是Image以二制制上传至sql中,并如何把二制的Image显示于网页上的影片,请参考:
http://download.csdn.net/source/323966

#3


public   Image   proimage;和 SqlDbType.Image应该不是一回事吧. Image是控件,不是数据类型. SqlDbType.Image直接对应成byte[]试试

#4


谢谢2楼跟三楼啊!小弟我试试。。。

#5


类型不一致
如果你用的是FileUpload控件可以判断它的HasFile属性 来知道是否有文件.
还需要判断扩展名为图片格式

#6


=好像不行,得Load或什么吧

#7


你可能需要把pro.proimage定义成Byte[]类型的,而不是System.Web.UI.WebControls.Image,这是个控件类。

#8


pro.proimage定义成Byte[]类型的话,下面Params[17] = db.MakeInParam("@ProductPicture", SqlDbType.Image, 1000, proimage);这两怎么写呢?

#9


不行的呀。。。SOS

#10


byte[] s = new byte[10];
SqlParameter ss = new SqlParameter("aa", s);

或者

byte[] s = new byte[10];
SqlParameter ss = new SqlParameter("aa",SqlDbType.Image);
ss.Value = s;

都是合法的呀, 是不是 db.MakeInParam函数缺少对应的参数重载?

#11


问题解决拉。。。
public   Image   proimage;//申明proimage 
===》public byte[] proimage;
这样就好了!原来是类型搞错了!

可是Params[17]   =   db.MakeInParam("@ProductPicture",   SqlDbType.Image,   1000,   proimage); 
这里面的大小怎么确定啊?

#12


支持