Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 我如何在谷歌GMail联系人中更改生日?_Asp.net_Vb.net_Google Contacts Api - Fatal编程技术网

Asp.net 我如何在谷歌GMail联系人中更改生日?

Asp.net 我如何在谷歌GMail联系人中更改生日?,asp.net,vb.net,google-contacts-api,Asp.net,Vb.net,Google Contacts Api,我在ASP.NET中通过网络表单更改Gmail联系人的属性? 我可以改变大部分财产,但我不能改变生日。这是我的密码: Dim contact As Contact = cr.Retrieve(Of Contact)(contactURL) contact.Name.FullName = m.Prenom & " " & m.Nom contact.Name.FamilyName = m.Nom contact.Name.GivenName = m.

我在ASP.NET中通过网络表单更改Gmail联系人的属性? 我可以改变大部分财产,但我不能改变生日。这是我的密码:

    Dim contact As Contact = cr.Retrieve(Of Contact)(contactURL)
    contact.Name.FullName = m.Prenom & " " & m.Nom
    contact.Name.FamilyName = m.Nom
    contact.Name.GivenName = m.Prenom
    contact.PrimaryEmail.Address = m.AdresseMail

    Dim adr As StructuredPostalAddress = contact.PostalAddresses(0)
    adr.Primary = True
    adr.Street = m.Adresse
    adr.Postcode = m.CodePostal
    adr.City = m.Ville
    adr.Rel = ContactsRelationships.IsHome

    Dim d As New Date
    d = CDate(m.DateNaissance)
    contact.ContactEntry.Birthday = d.Year & "-" & d.Month & "-" & d.Day

    Try
    Dim updatedContact As Contact = cr.Update(contact)

    Catch e As GDataVersionConflictException
       ' Do Something
    Finally
       'do Something
    End Try
我犯了一个错误:

    [WebException: Le serveur distant a retourné une erreur : (400) Demande incorrecte.]
    System.Net.HttpWebRequest.GetResponse() +6542104
    Google.GData.Client.GDataRequest.Execute() +136

    [GDataRequestException: Execution of request failed: https://www.google.com/m8/feeds/contacts/xxxxxxx/full/xxxxxxx]
       Google.GData.Client.GDataRequest.Execute() +291
       Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter) +653
       Google.GData.Client.GDataGAuthRequest.Execute() +34
       Google.GData.Client.Service.EntrySend(Uri feedUri, AtomBase baseEntry, GDataRequestType type, AsyncSendData data) +430
    Google.GData.Client.FeedRequest`1.Update(Y entry) +417
       FlbMembres.CtlMajGmail.MajGmail() in C:\Mes Sites Web\FLBMembres\FlbWeb\ControlesUser\CtlMajGmail.ascx.vb:187
       FlbMembres.CtlMajGmail.btnMaj_Click(Object sender, EventArgs e) in C:\Mes Sites Web\FLBMembres\FlbWeb\ControlesUser\CtlMajGmail.ascx.vb:200
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628114
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
                                                    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

问题是,你这样写你的约会对象:

Dim d As New Date
d = CDate(m.DateNaissance)
contact.ContactEntry.Birthday = d.Year & "-" & d.Month & "-" & d.Day
日期类型的
属性是数字。这意味着,如果其中一个小于10,则得到一位数的月份或一位数的日期。例如,2014年1月1日将成为
2014-1-1

但谷歌希望日期的格式为
yyyy-MM-dd

只要检查一天和一个月的长度,如果需要的话,确保它们有一个前导零

由于您使用的是.NET,
DateTime
struct有一个采用格式字符串的
ToString
方法。您可以将代码替换为:

Dim d As New Date
d = CDate(m.DateNaissance)
contact.ContactEntry.Birthday = d.ToString("yyyy-MM-dd")

。。。你会得到一个你需要的格式的字符串,连接更少。好机会

我不会说太多法语,但错误消息基本上表明您在某处有一个格式错误的请求。重新检查您用于出生日期的格式。您的日期或月份是否缺少前导零?格式必须为yyyy-MM-dd,因此类似于
1983-12-1
的日期将无效(但
1983-12-01
将是正确的)。您是对的。。。因为我的生日是1970年2月1日,而不是1970年2月1日。谢谢