[英]Error: String was not recognized as a valid DateTime. I'm using jquery datepicker with asp.net and c# web forms and sql databse
我有一個文本框,其中我從日期選擇器中選擇日期。 然后,我需要驗證:1.選擇了一個日期2.選擇的日期不是將來的日期。 僅今天或以前的日期。 3.當天的固定小時數不超過20-24小時。
我有一個錯誤“錯誤:字符串未被識別為有效的DateTime。” 我已經花了很多天了,對此可以幫忙嗎?
C#代碼:
protected void btnCreate_click(object sender, EventArgs e)
{
try
{
DateTime dt = DateTime.ParseExact(DateTxt.Text, "MM/dd/yyyy", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces);
if (DateTxt.Text != "" && PName_dd.Text != "" && CCG_dd.Text != "" && CCL_dd.Text != "")
{
cmd.CommandText = "INSERT INTO TSHistory(EmpId_Int, ProjectCode_Int, TSDate_dt, CCode_Int, TSRhours_nu, TSOhours_nu, JobDescp_vc) VALUES(@GEId, @Pcode, @date, @CCode, @Rhr, @Ohr, @job)";
cmd.Parameters.AddWithValue("@GEId", EmpID.Text);
cmd.Parameters.AddWithValue("@PCode", PCode_txt.Text);
cmd.Parameters.AddWithValue("@date", dt);
cmd.Parameters.AddWithValue("@CCode", CCL_dd.SelectedValue);
cmd.Parameters.AddWithValue("@Rhr", R_txt.Text);
cmd.Parameters.AddWithValue("@Ohr", O_txt.Text);
cmd.Parameters.AddWithValue("@job", JobDesc_txt.Text);
cmd.Parameters.AddWithValue("@Emp", EmpID.Text);
cmd.Connection = Cnn;
Cnn.Open();
cmd.ExecuteNonQuery();
Cnn.Close();
updateUserDetails();
// displayTS();
RefreshSrc();
RefreshDatabase();
}
else
{
// DateTime dt = Convert.ToDateTime();
// var total_hrs = 24;
// DateTime dt = DateTime.ParseExact(DateTxt.Text, "MM/dd/yyyy", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces);
// global.Text = "Done";
if (DateTxt.Text == "")
{
// Response.Write("<script>alert('PLease select date');</script>");
// dateError.Text = "PLease select date";
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Select date')", true);
}
else if (DateTxt.Text != "" && dt > DateTime.Today)
{
// Response.Write("<script>alert('Invalid Date');</script>");
// dateError.Text = "Invalid date";
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Invalid date')", true);
}
}
}
catch (Exception ex)
{
Response.Write("Error: " + ex.Message.ToString());
}
}
Aspx代碼:
<div class="form-group col-sm-1">
<asp:TextBox ID="DateTxt" placeholder="Date" CssClass="form-control" runat="server"
ReadOnly="True">
</asp:TextBox>
使ReadOnly =“ False”
如果ReadOnly =“ True”,則不能更改TextBox控件的內容。這就是為什么DateTxt文本值保持為空(“”)並引發錯誤:字符串未被識別為有效的DateTime的原因。
由於您的文本僅包含日期部分,因此請按如下所示更改代碼,
DateTime dt = DateTime.ParseExact(DateTxt.Text, "MM/dd/yyyy",CultureInfo.InvariantCulture);
我對代碼做了一些更改。 請檢查。
DateTime dt = DateTime.ParseExact(DateTxt.Text.Date, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.