2011-04-30 267 views
1

我用下面的代碼改變谷歌日曆事件的位置API結算活動地點:谷歌日曆

EventEntry eventEntry = this.GetGoogleEvent(EVT,CAL);

​​

它工作正常,改變位置,但是當NEWLOCATION是一個空字符串沒有被更新:""

什麼解決辦法?這是一個API錯誤?

感謝您的建議!

編輯: 也試過不if(NEWLOCATION != "")

回答

1

如果您調用Locations.Clear(),然後更新(),您將發送一個PUT請求,但不包含任何gd:where元素。更新請求只更新請求中指定的那些字段,所以事件的gd:where元素將不受影響。

如果要清除事件的gd:where字段,則必須發送包含單個gd:where元素的值爲空字符串的更新請求。例如,你可以使用下面的代碼:

entry.Locations.Clear(); 
entry.Locations.Add(new Where()); 
entry.Update(); 

那家是造成空GD庫中的錯誤:其中在更新請求被忽略的valueString元素。這個bug在幾分鐘前被修復了。圖書館的1113:

http://code.google.com/p/google-gdata/source/detail?r=1113

0

對於初學者來說,我會比較對空字符串:

if(NEWLOCATION != string.Empty) 
{ 
    eventEntry.Locations.Add(new Where("", "", NEWLOCATION)); 
} 

而且我總是會用括號,只是爲了確保我知道會被執行如果條件匹配。
至於空位置,我可能在這裏從根本上錯誤,但不Locations.Clear()方法已經設置位置爲空值?不接受嗎?也許你需要兩個單獨的更新,一個用於清除位置,另一個用於更改其他值?

+0

1.我已經調試此代碼,如果條件是與正確=「」(是的,我是新來的C#,使用「」從慣例) 2!是的,我認爲這樣,Locations.Clear()更新位置爲空 - 但不是!爲此我在這裏問... 3.兩個更新?也許...我會試一試 – ijavid 2011-04-30 22:25:31