Comment insérer une valeur de type DateTime [duplicate]

Nov 30 2020

Dans ma table, j'ai deux colonnes StartedDateet EndDate, les deux sont définies comme Datetype de données.

J'essaie d'insérer des valeurs pour ces deux colonnes via un champ de texte de type date comme indiqué ci-dessous:

<asp:Textbox type="date" ID="startDate" runat="server"></asp:Textbox>
<asp:Textbox type="date" ID="endDate"  runat="server"></asp:Textbox>

J'essaie de récupérer la valeur de ces zones de texte et de les insérer dans ma base de données.

Voici mon code pour l'insertion:

// Insert a new row in the Task table
SqlDataSource1.InsertParameters["Task"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtTask")).Text;
SqlDataSource1.InsertParameters["StartedDate"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("startDate")).Text;
SqlDataSource1.InsertParameters["EndDate"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("endDate")).Text;
SqlDataSource1.InsertParameters["Done"].DefaultValue = ((CheckBox)GridView1.FooterRow.FindControl("DoneCbx")).Checked == true ? "true" : "false";
SqlDataSource1.InsertParameters["Priority"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("PriorityTxt")).Text;

// Method to execute the insert 
SqlDataSource1.Insert();

L'insertion fonctionne très bien, sauf pour les champs de date, car la valeur extraite de la zone de texte doit être convertie en DateTime.

J'ai essayé Convert.ToDateTimeet des Datetime.Parseméthodes, mais les deux fois, j'obtiens l'erreur suivante:

Impossible de convertir implicitement le type «System.DateTime» en «chaîne»

Réponses

Backs Nov 30 2020 at 11:00

Méthode DateTime.Parse :

SqlDataSource1.InsertParameters["StartedDate"].DefaultValue = DateTime.Parse(((TextBox)GridView1.FooterRow.FindControl("startDate")).Text);