So fügen Sie einen Wert vom Typ DateTime ein [Duplikat]

Nov 30 2020

In meinem Tisch habe ich zwei Spalten StartedDateund EndDate, beide sind definiert als DateDatentyp.

Ich versuche, Werte für diese beiden Spalten über ein Textfeld vom Typ Datum einzufügen, wie unten gezeigt:

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

Ich versuche, den Wert aus diesen Textfeldern abzurufen und in meine Datenbank einzufügen.

Dies ist mein Code für die Einfügung:

// 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();

Das Einfügen funktioniert einwandfrei, mit Ausnahme der Datumsfelder, da der aus dem Textfeld abgerufene Wert in konvertiert werden muss DateTime.

Ich habe versucht Convert.ToDateTimeund Datetime.ParseMethoden, aber beide Male erhalte ich den folgenden Fehler:

Typ 'System.DateTime' kann nicht implizit in 'Zeichenfolge' konvertiert werden.

Antworten

Backs Nov 30 2020 at 11:00

DateTime.Parse- Methode:

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