さまざまなマスクなどを持つテキスト ボックスから値を取得して、データベース テーブルに日時を追加しようとしています。次のエラーが発生します。
String was not recognized as a valid DateTime.
テキスト ボックス コード:
<asp:TableRow>
<asp:TableCell>
<asp:ToolkitScriptManager ID="calendarToolkit" runat="server"></asp:ToolkitScriptManager>
<asp:TextBox ID="startDateTextbox" runat="server"></asp:TextBox>
<asp:CalendarExtender Format="yyyy-dd-MM" ID="startDateExtender" TargetControlID="startDateTextbox" runat="server" />
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>
<asp:TextBox ID="startTimeTextbox" runat="server"></asp:TextBox>
<asp:MaskedEditExtender ID="m1" runat="server" Mask="99:99" MaskType="Time" AcceptAMPM="false"
MessageValidatorTip="true" TargetControlID="startTimeTextbox"
ClearMaskOnLostFocus="false">
</asp:MaskedEditExtender>
<asp:MaskedEditValidator ID="mv1" runat="server" ControlExtender="m1" ControlToValidate="startTimeTextbox"
Display="none" EmptyValueMessage="Time is required" InvalidValueMessage="Valid Start Time"
IsValidEmpty="true" TooltipMessage="Input a time">
</asp:MaskedEditValidator>
</asp:TableCell>
</asp:TableRow>
データベースに値を追加する c# コード:
string sqlQuery =
"insert into dbo.Event_Info(event_name, description, location, date_end,date_start,image_url) values(@name, @desc, @location,@startDate,@endDate,@imageURL)";
SqlConnection dbConnection = new SqlConnection("server=(local)\\SGSQL;database=STEvent;Trusted_Connection=yes");
dbConnection.Open();
SqlCommand dbCommand = new SqlCommand(sqlQuery, dbConnection);
SqlParameter startParam = new SqlParameter("@startDate",SqlDbType.DateTime);
startParam.Value = Convert.ToDateTime(startDateTextbox.Text +" " + startTimeTextbox.Text);
dbCommand.Parameters.Add(startParam);
dbCommand.ExecuteNonQuery();
dbConnection.Close();
注: 他のすべてのパラメーターが長く冗長に見えるため、コードのサブセットのみを追加しました。