如何将对象字符串转换为对象Guid在C#

问题描述:

我有一个DetailsView,我需要在DataKeyNames“UserId”(一个Guid字段)中获取值specifield并将其添加到对象Guid。如何将对象字符串转换为对象Guid在C#

目前我使用此代码:

String myUserId = (String)uxAuthorListDetailsView.DataKey["UserId"].ToString(); 

但我需要的东西,如:

Guid myUserGuid = (Guid)uxAuthorListDetailsView.DataKey["UserId"].ToString(); 

但不工作我得到错误错误

Cannot convert type 'string' to 'System.Guid' 

什么可能是问题?谢谢你们的支持!

检查:什么对象uxAuthorListDetailsView.DataKey [“用户ID “]
我想这必须已经是Guid;并不需要转换

var myUserGuid = new Guid(uxAuthorListDetailsView.DataKey["UserId"].ToString()); 

好了,问题是,你打电话ToString(),然后尝试该字符串转换为Guid,当有可用没有这样的转换。可能的备选方案:

  • 演员代替调用ToString()的,如果原始值实际上是一个GUID:

    Guid guid = (Guid)uxAuthorListDetailsView.DataKey["UserId"]; 
    
  • 解析不是字符串:

    Guid guid = new Guid(uxAuthorListDetailsView.DataKey["UserId"].ToString()); 
    

如果这是用户输入的数据,或者有也就是说,为什么这个值有一半是不正确的,如果你使用的是.NET 4,你可能需要使用Guid.TryParse,这样你可以在没有异常的情况下处理失败。

+0

感谢乔恩它是工作伟大的铸造版本!再次感谢! – GibboK 2010-11-25 07:30:08

假设uxAuthorListDetailsView.DataKey [ “用户ID”]存储有效的GUID

尝试下调试这个

Guid myUserGuid = (Guid)uxAuthorListDetailsView.DataKey["UserId"] 

删除ToString方法