//上传图片
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
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属性 来知道是否有文件.
还需要判断扩展名为图片格式
如果你用的是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函数缺少对应的参数重载?
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);
这里面的大小怎么确定啊?
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
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属性 来知道是否有文件.
还需要判断扩展名为图片格式
如果你用的是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函数缺少对应的参数重载?
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);
这里面的大小怎么确定啊?
public Image proimage;//申明proimage
===》public byte[] proimage;
这样就好了!原来是类型搞错了!
可是Params[17] = db.MakeInParam("@ProductPicture", SqlDbType.Image, 1000, proimage);
这里面的大小怎么确定啊?
#12
支持