代码之家  ›  专栏  ›  技术社区  ›  GibboK

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

  •  1
  • GibboK  · 技术社区  · 14 年前

    我有一个DetailsView,我需要在DataKeyNames“UserId”(一个Guid字段)中获取value specified字段并将其添加到一个对象Guid。

    目前我正在使用以下代码:

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

    但我需要这样的东西:

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

    但不起作用我得到错误

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

    有什么问题吗?谢谢大家的支持!

    4 回复  |  直到 14 年前
        1
  •  1
  •   Oleg Kalenchuk    14 年前

    在debug下检查:什么对象是uxAuthorListDetailsView.DataKey[“UserId”]
    我想这一定已经是Guid了;不需要转换

        2
  •  6
  •   Jon Skeet    14 年前

    问题是你打电话来 ToString() 然后试着把绳子 Guid ,当没有此类转换可用时。可能的替代方案:

    • 铸造 相反 打电话 ToString() ,如果原始值确实是一个Guid:

      Guid guid = (Guid)uxAuthorListDetailsView.DataKey["UserId"];
      
    • 改为分析字符串:

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

    如果这是用户输入的数据,或者有任何其他原因导致该值一半不正确,并且如果您使用的是.NET 4,则可能需要使用 Guid.TryParse 相反,这将允许您毫无例外地处理失败。

        3
  •  2
  •   Phil Hunt    14 年前
    var myUserGuid = new Guid(uxAuthorListDetailsView.DataKey["UserId"].ToString());
    
        4
  •  1
  •   TalentTuner    14 年前

    假设uxAuthorListDetailsView.DataKey[“UserId”]存储有效的Guid

    试试这个

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

    移除ToString方法