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,是吧?
[解决办法]
是不是可以用一下空属类型啊(泛型的应用)