问题描述
protectedvoidPage_Load(objectsender,EventArgse){stringimginfo=Session["imgid_info"]asstring;SqlConnectionconn=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connStr"]);conn.Open();SqlCommandcomm=newSqlCommand("get_pic",conn);comm.CommandType=CommandType.StoredProcedure;SqlParameterparm=comm.Parameters.Add("@id",SqlDbType.Char,10);parm.Value=imginfo;SqlDataReaderreader=comm.ExecuteReader();if(reader.Read()){Response.Clear();Response.BinaryWrite((byte[])reader["img"]);}reader.Close();conn.Close();}存储过程:CREATEprocedureget_pic(@idchar,@imgimageOUTPUT)asselect@imgfromtable_imgwhereid=@idGO一直说----------过程'get_pic'需要参数'@id',但未提供该参数。谢谢
解决方案
解决方案二:
检查一下imginfo的值是不是为null?
解决方案三:
一般来说报这个错是因为参数是空值(C#中为null,VB中为Nothing),如果值确实为空(C#中为null,VB中为Nothing)则应使用数据库空值来代替(DBNull.Value);
解决方案四:
估计是imginfovalue为NULL的问题
解决方案五:
哎~飘过~
解决方案六:
parm=comm.Parameters.Add("@img",..);parm.Direction=ParameterDirection.Output
解决方案七:
存储过程对吗?....
解决方案八:
CREATEprocedureget_pic(@idchar)asselectimgfromtable_imgwhereid=@idGO
解决方案九:
你的那个@id没有付值comm.Parameters[0].value=""就可以了
解决方案十:
先在查询分析器里面执行存储过程看看
解决方案十一:
Session["imgid_info"]为空的可能性很大!