社区
C#
帖子详情
关于GUID的一个奇怪的问题
changjian1444
2014-10-17 12:15:36
问题是这样的,我在数据库A里面有一个表,这个表里面的某一个字段是存的订单号,并且是加密过的(自定义加密,也可以解密),现在有一个问题是这个字段里面存储了加密后的32位GUID(自动生成的36位GUID,截取前32位)后,通过另外一个取数据的程序把这条记录取出来,然后写入到另外一个数据库B的表中,这个字段的值就自动把32位补足成36位了,而且这个取数据的程序没有经过任何的逻辑处理,不知道哪位大神能够解释下?
...全文
311
3
打赏
收藏
关于GUID的一个奇怪的问题
问题是这样的,我在数据库A里面有一个表,这个表里面的某一个字段是存的订单号,并且是加密过的(自定义加密,也可以解密),现在有一个问题是这个字段里面存储了加密后的32位GUID(自动生成的36位GUID,截取前32位)后,通过另外一个取数据的程序把这条记录取出来,然后写入到另外一个数据库B的表中,这个字段的值就自动把32位补足成36位了,而且这个取数据的程序没有经过任何的逻辑处理,不知道哪位大神能够解释下?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
effun
2014-10-17
打赏
举报
回复
先给你科普一下,GUID是128位的,也就是说有16个字节,如果转换成文本,每个字节要2个字符来表示,所以共有32个字符,加上4个分组的连接符,共36个字符,因此你说的32位或36位实际是字符的意思。 由于你说是截取了GUID的前32个字符,说明A表这个字段肯定不是uniqueidentifier类型,很有可能是varchar,因为如果只截取前32个字符的话,是一个不合法的Guid,这也在程序里也不可能通过读取Guid的方式放到B表中,因此推断出B表的这个字段应该也是字符串类型的,这样的话,问题的原因就清楚了,因为你在B表中使用了char(36)。你只要把B表中的这个字段改成char(32)就可以了。
changjian1444
2014-10-17
打赏
举报
回复
多谢大家,问题找到了,的确是字符串操作的问题,非常感谢
於黾
2014-10-17
打赏
举报
回复
同1楼,这个问题跟GUID不GUID的,一点关系都没有 自始至终,你都是在玩字符串而已
随笔
本文记录了作者在前端开发过程中遇到的三个典型
问题
及解决方案,包括
奇怪
的下拉选项、
GUID
生成差异与jQuery分页插件加载失败等
问题
。
entity framework mysql
guid
_在Entity Framework中慎用
Guid
?
本文探讨了在使用Entity Framework和DataService时,遇到的
Guid
类型主键外键查询不匹配和明细表添加
问题
。作者分享了具体实例和解决方案,包括类型转换以及表结构设计的影响。
通过PowerShlle Script修改Hyper-V虚拟机的BIOS
GUID
本文介绍如何使用PowerShell脚本来解决Hyper-V虚拟机BIOS
GUID
为空导致的
问题
,包括脚本操作流程、示例和注意事项。脚本允许自动生成或指定新的BIOS
GUID
,确保虚拟机正常运行。
javascript下获取
guid
或者UTC时间作为唯一值
探讨在前端开发中,如何使用
GUID
或UTC时间生成唯一值,特别是在使用easyUI treegrid时为新节点分配临时ID的方法。
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章