2010-11-25 27 views
1

私はDetailsViewを持っていますが、DataKeyNamesの "UserId"(Guidフィールド)で値の指定を取得し、それをObject Guidに追加する必要があります。私はこのコードを使用しています現時点ではC#のObject Guidにオブジェクト文字列を変換する方法

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

が、私のようなもの必要があるでしょう:

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

をしかし、動作しません、私はエラーエラーを取得

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

何問題になる可能性がありますか?あなたのサポートのおかげでみんな!

答えて

1

チェックを保存すると仮定すると、

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

さて、問題は、あなたがToString()を呼び出した後、利用可能な、このような変換はありませんとき、Guidにその文字列をキャストしようとしているということです。可能な選択肢:ToString()を呼び出すの

  • キャスト代わり、元の値が実際のGuidの場合:

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

Guid guid = (Guid)uxAuthorListDetailsView.DataKey["UserId"]; 
  • する代わりに文字列を解析これがまったくユーザー入力のデータである場合、または.NET 4を使用している場合は、代わりにGuid.TryParseを使用すると、例外なくエラーを処理できます。 uxAuthorListDetailsView.DataKeyはどのようなオブジェクトである[「ユーザーID:uxAuthorListDetailsView.DataKey [ "ユーザーID"]は、デバッグの下で有効なGUID

    削除ToStringメソッドこの

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

    を試してみてください

  • +0

    ありがとうございましたジョンは、キャストバージョンが素晴らしいです!もう一度ありがとう! – GibboK

    1

    "]
    これはすでにGuidである必要があります。変換は必要ありません

    関連する問題