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

时间:2010-11-25 07:23:19

标签: c# asp.net

我有一个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'

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

4 个答案:

答案 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;并且不需要转换