错误:字符串未被识别为有效的DateTime。我使用jQuery日期选择用asp.net和c#web表单和SQL DATABSE

问题描述 投票:0回答:3

我有我选择从日期选择日期文本框。然后我需要验证: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>
c# sql asp.net runtime-error datetimepicker
3个回答
1
投票

制作只读=“假”

TextBox控件的内容不能改变,如果只读=“真”。而这就是为什么DateTxt文本值保持为空(“”),它是抛出一个错误:字符串未被识别为有效的DateTime。


0
投票

当你的文字只包含日期部分,如下更改代码,

DateTime dt = DateTime.ParseExact(DateTxt.Text, "MM/dd/yyyy",CultureInfo.InvariantCulture);

0
投票

我已经改变了代码一点点。请检查。

DateTime dt = DateTime.ParseExact(DateTxt.Text.Date, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces);
© www.soinside.com 2019 - 2024. All rights reserved.