DBNull问题
数据库: 
 CREATE   procedure   UserIsExict 
 @Uid   binary(30), 
 @UserName   binary(30)   output 
 as 
 select   @UserName=UserName   from   AlbumLogin   where   Uid=@Uid 
 GO 
 程序: 
 SqlCommand   cmd   =   new   SqlCommand( "UserIsExict ",conn); 
                         cmd.CommandType   =   CommandType.StoredProcedure;   
                         cmd.Parameters.Add(new   SqlParameter( "@Uid ",   SqlDbType.Binary,   30)); 
                         cmd.Parameters[ "@Uid "].Value   =   Encoding.UTF32.GetBytes(paraUid);   
                         cmd.Parameters.Add(new   SqlParameter( "@UserName ",SqlDbType.Binary,30)); 
                         cmd.Parameters[ "@UserName "].Direction   =   ParameterDirection.Output;   
                         conn.Open(); 
                         cmd.ExecuteNonQuery(); 
                         conn.Close();   
                   return   Encoding.UTF32.GetString(   ((byte[])cmd.Parameters[ "@UserName "].Value)   );   
 错误: 
 无法将类型为“System.DBNull”的对象强制转换为类型“System.Byte[]”
------解决方案--------------------if(cmd.Parameters[ "@UserName "]!=DBNull.Value ) 
 { 
  return Encoding.UTF32.GetString( ((byte[])cmd.Parameters[ "@UserName "].Value) );   
 } 
 else 
 { 
 return String.Empty; 
 }
------解决方案--------------------你的返回值是null,所以不能进行转换操作
------解决方案--------------------老大 你的上个帖子我不是给你回了么
------解决方案--------------------对返回值判断一下即可处理!
------解决方案--------------------對反回值處理一下
------解决方案--------------------if(Convert.IsDbNull(...)) 
 { 
 }
------解决方案--------------------判断一下是不是dbnull不就可以了
------解决方案--------------------错误: 
 无法将类型为“System.DBNull”的对象强制转换为类型“System.Byte[]” 
 ------------------------- 
 现在的年轻人啊!不知道仔细分析下.
------解决方案--------------------小镇姑娘她爹我还要再说下现在的年轻人啊,唉...... 
------解决方案--------------------说的就是为什么参数所获取的值为什么总DBNull,是吧?
------解决方案--------------------是不是可以用一下空属类型啊(泛型的应用)