首页 新闻 搜索 专区 学院

GUID 的字节数组长度必须正好为 16 字节 。

0
悬赏园豆:10 [已解决问题] 解决于 2012-05-31 14:46

GUID 的字节数组长度必须正好为 16 字节。(在.Net下读取oracle表时报这个错.)求高手解决...

蒋先生的主页 蒋先生 | 初学一级 | 园豆:144
提问于:2012-05-31 11:03
< >
分享
最佳答案
0

查看下,ORACLE数据表中的那个内容是GUID值,然后又有哪个字段的内容被转换为了.NET中的GUID类型。

从错误信息看,是你得到的GUID数据在转换为.NET下的GUID对象时失败导致的。

如果还不能解决,把相应的数据内容贴出来。

GUID是一个16字节的数据内容,一般转换为字符串的时候,都是32字节(16进制表现)。

最终的字符串可能是32字符、36字符(带4个“-”分割)、38字符(在36字符的基础上用“{}”标记)

收获园豆:10
无之无 | 大侠五级 |园豆:5085 | 2012-05-31 11:10
其他回答(2)
0

这里有解决方法:http://stackoverflow.com/a/7289877

dudu | 园豆:37751 (高人七级) | 2012-05-31 14:01
0

哈哈,已解决,之前操作的oracle表数据中的Guid是用oracle自带的SYS_GUID()这个函数生成的,这种Guid值在.Net下获取会报"GUID 的字节数组长度必须正好为 16 字节.".

解决办法是oracle表中的Guid值采用.Net下 的Guid.NewGuid()方法插入生成.

也就是oracle自带的SYS_GUID()函数生成的Guid值.Net下无法接收,而.Net自己的Guid.NewGuid()方法生成的Guid可以插入接收.

蒋先生 | 园豆:144 (初学一级) | 2012-05-31 14:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册