2013-07-10 95 views
0

我想根據帳戶GUID檢索客戶端名稱,使用sql和c#。將字符串轉換爲System.guid c#

static DataClasses1DataContext dbDataClasses = new DataClasses1DataContext(); 
    static void Main(string[] args) 
    { 

     var accountList = from accounts in dbDataClasses.ACCOUNTs where accounts.AccountGUID.ToString() = "e8d82d5d-b7bd-4b24-a7fe-ef050921e960" 
          select accounts; 

     foreach (ACCOUNT temp in accountList) 
     { 
      Console.WriteLine("Account Name: " + temp.Name + " Account GUID: " + temp.AccountGUID); 
     } 

    } 

不過,我收到一個錯誤說「無法隱式轉換類型‘字符串’到‘的System.Guid’

任何幫助,將不勝感激。謝謝

+3

[Guid.Parse](http://msdn.microsoft.com/en-us/library/system.guid.parse.aspx) – Stijn

回答

0

你需要比較字符串之前的GUID轉換爲字符串:

var accountList = from accounts in dbDataClasses.ACCOUNTs where accounts.AccountGUID.ToString()== "e8d82d5d" 

但是「e8d82d5d」不是guid,因此您將永遠不會看到此查詢的任何結果。在使用它之前

+0

var accountList =從dbDataClasses.ACCOUNTs中的帳戶where accounts.AccountGUID.ToString( )=「e8d82d5d-b7bd-4b24-a7fe-ef050921e960」 我用上面的代碼編輯了我的代碼,但是現在我得到一個錯誤,說我無法轉換爲bool? –

+0

您需要使用== – Peter

1

使用

Guid.Parse() 

Guid.ParseExact() 你的字符串:

where accounts.AccountGUID= "e8d82d5d" 

它應該是這樣的:

where accounts.AccountGUID= Guid.Parse("e8d82d5d") 
0
static DataClasses1DataContext dbDataClasses = new DataClasses1DataContext(); 
    static void Main(string[] args) 
    { 
     Guid someGuid; 
     if(Guid.TryParse("e8d82d5d", out someGuid)) 
     { 
      var accountList = from accounts in dbDataClasses.ACCOUNTs where accounts.AccountGUID= someGuid 
          select accounts; 

      foreach (ACCOUNT temp in accountList) 
      { 
       Console.WriteLine("Account Name: " + temp.Name + " Account GUID: " + temp.AccountGUID); 
      } 
     } 
     else 
     { 
      //error handle 
     } 


    } 
1

有2種方式,你可以做它

假設所有ID是有效的格式

Guid accountId = Guid.Parse(accountIdString); 

假定您accountIdString始終處於有效的格式,如果它是不是會拋出異常

假設Id的格式可能無效

Guid accountId; 
bool parseCheck = Guid.TryParse(accountIdString, out accountId); 

will嘗試解析您的accountIdString,並根據是否成功返回true或false來解析checkCheck。如果成功,它還會將解析的Guid存儲爲accountId

您使用哪一個取決於您是否知道每個ID是否使用有效的Guid格式。