如何将对象字符串转换为对象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
,这样你可以在没有异常的情况下处理失败。
答
假设uxAuthorListDetailsView.DataKey [ “用户ID”]存储有效的GUID
尝试下调试这个
Guid myUserGuid = (Guid)uxAuthorListDetailsView.DataKey["UserId"]
删除ToString方法
感谢乔恩它是工作伟大的铸造版本!再次感谢! – GibboK 2010-11-25 07:30:08