我有一个DetailsView,我需要在DataKeyNames“UserId”(Guid字段)中获取值,并将其添加到Object Guid。
目前我正在使用此代码:
String myUserId = (String)uxAuthorListDetailsView.DataKey["UserId"].ToString();
但我需要类似的东西:
Guid myUserGuid = (Guid)uxAuthorListDetailsView.DataKey["UserId"].ToString();
但是不起作用我收到错误错误
Cannot convert type 'string' to 'System.Guid'
可能是什么问题?谢谢你们的支持!
答案 0 :(得分:6)
嗯,问题是你正在调用ToString()
,然后尝试将该字符串转换为Guid
,此时没有可用的转换。可能的替代方案:
如果原始值真的是Guid,请调用ToString()
:
Guid guid = (Guid)uxAuthorListDetailsView.DataKey["UserId"];
改为解析字符串:
Guid guid = new Guid(uxAuthorListDetailsView.DataKey["UserId"].ToString());
如果这是用户输入的数据,或者有任何其他原因导致该值的预期不正确,并且如果您使用的是.NET 4,则可能需要使用Guid.TryParse
代替,这将允许您毫无例外地处理失败。
答案 1 :(得分:2)
var myUserGuid = new Guid(uxAuthorListDetailsView.DataKey["UserId"].ToString());
答案 2 :(得分:1)
假设uxAuthorListDetailsView.DataKey [“UserId”]存储有效的Guid
试试这个
Guid myUserGuid = (Guid)uxAuthorListDetailsView.DataKey["UserId"]
删除ToString方法
答案 3 :(得分:1)
在debug下检查:uxAuthorListDetailsView.DataKey [“UserId”]的对象是什么 我想这一定是Guid;并且不需要转换