VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
123
返回列表 发新帖
楼主: weiranli00

求解binary转换问题

[复制链接]

1

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-4-5 08:00:02 | 显示全部楼层
转化还是出错,说是不能将DBNull值转换在byte[]
但是我把数据库的类型改成char时得到值是正确的,为什么用binary类型时就成为空了
回复

使用道具 举报

0

主题

15

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-4-7 11:45:01 | 显示全部楼层
你数据库中 UserName 字段是什么类型的?
回复

使用道具 举报

1

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-4-7 22:30:02 | 显示全部楼层
是binary类型的
但改成char类型时可以,如果是binary类型就出现不能将DBNull值转换在byte[]
回复

使用道具 举报

1

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-4-7 23:15:01 | 显示全部楼层
但是数据库要求用binary类型的
回复

使用道具 举报

0

主题

15

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-4-10 09:30:01 | 显示全部楼层

你可以在强制转化前 单独判断一下是否为空
byte[] b =
(cmd.Parameters["@UserName"].value==null)?
new byte[0]:
(byte[])cmd.Parameters["@UserName"].value;
回复

使用道具 举报

2

主题

22

帖子

14.00

积分

新手上路

Rank: 1

积分
14.00
 楼主| 发表于 2020-4-21 21:45:02 | 显示全部楼层
但是不对啊,为什么会是空呢,那应该是有值的,我就是想要那个值
回复

使用道具 举报

0

主题

18

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-4-26 20:15:01 | 显示全部楼层
是不是存储过程 UsmgcfoxsExict 没有返回值?
回复

使用道具 举报

1

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-4-26 22:30:02 | 显示全部楼层
那为什么我将字段改成char型时又有返回值呢?
数据库:
CREATE procedure UsmgcfoxsExict
@Uid binary(30),
@UserName binary(30) output
as
select @UserName=UserName from AlbumLogin where Uid=@Uid
GO
程序:
SqlCommand cmd = new SqlCommand("UsmgcfoxsExict",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[]”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表