Trying to convert string to datetime

Posted by user1596472 on Stack Overflow See other posts from Stack Overflow or by user1596472
Published on 2012-10-30T16:06:14Z Indexed on 2012/10/30 17:01 UTC
Read the original article Hit count: 200

Filed under:
|
|
|

I am trying to restrict a user from entering a new record if the date requested already exits. I was trying to do a count to see if the table that the record would be placed in already has that date 1 or not 0. I have a calendar extender attached to a text box which has the date.

I keep getting either a:

String was not recognized as a valid DateTime.

or

Unable to cast object of type 'System.Web.UI.WebControls.TextBox' to type 'System.IConvertible'.

depending on the different things I have tried.

Here is my code.

 TextBox startd = (TextBox)(DetailsView1.FindControl("TextBox5"));
                TextBox endd = (TextBox)(DetailsView1.FindControl("TextBox7"));
                DropDownList lvtype = (DropDownList)(DetailsView1.FindControl("DropDownList6"));

                DateTime scheduledDate = DateTime.ParseExact(startd.Text, "dd/MM/yyyy", null);
                DateTime endDate = DateTime.ParseExact(endd.Text, "dd/MM/yyyy", null);

                DateTime newstartDate = Convert.ToDateTime(startd.Text);
                DateTime newendDate = Convert.ToDateTime(endd.Text);

                //foreach (DataRow row in sd.Tables[0].Rows)
                DateTime dt = newstartDate;

                while (dt <= newendDate)
                {
                    //for retreiving from table
                    Decimal sd = SelectCountDate(dt, lvtype.SelectedValue, countDate);

                    String ndt = Convert.ToDateTime(dt).ToShortDateString();

                    // //start = string.CompareOrdinal(scheduledDate, ndt);
                    // // end = string.CompareOrdinal(endDate, ndt);

                    //trying to make say when leavetpe is greater than count 1 then throw error. 
                    if (sd > 0)
                    {
                        Response.Write("<script>alert('Date Already Requested');</script>");
                    }
                    dt.AddDays(1);

                }

^^^ This version throws the: "String was not recognized as valid date type" error

But if i replace the string with either of these :

  /*-----------------------Original------------------------------------
                string scheduledDate = Convert.ToDateTime(endd).ToShortDateString();
                string endDate = Convert.ToDateTime(endd).ToShortDateString();
                -------------------------------------------------------------------*/

                /*----------10-30---------------------------------------
                DateTime scheduledDate = DateTime.Parse(startd.Text);
                DateTime endDate = DateTime.Parse(endd.Text);
                ------------------------------------------------------*/

I get the "Unable to cast object of type 'System.Web.UI.WebControls.TextBox' to type 'System.IConvertible'." error.

I am just trying to stop a user from entering a record date that already exits.

                <InsertItemTemplate>
                    <asp:TextBox ID="TextBox5" runat="server" Height="19px"
                        Text='<%# Bind("lstdate",  "{0:MM/dd/yyyy}") %>' Width="67px"></asp:TextBox>
                    <asp:CalendarExtender ID="TextBox5_CalendarExtender" runat="server" Enabled="True"
                        TargetControlID="TextBox5">
                    </asp:CalendarExtender>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                        ControlToValidate="TextBox5" ErrorMessage="*Leave Date Required" 
                        ForeColor="Red"></asp:RequiredFieldValidator>
                    <br />
                    <asp:CompareValidator ID="CompareValidator18" runat="server" 
                        ControlToCompare="TextBox7" ControlToValidate="TextBox5" 
                        ErrorMessage="Leave date cannot be after start date" ForeColor="Red" 
                        Operator="LessThanEqual" ToolTip="Must choose start date before end date"></asp:CompareValidator>
                </InsertItemTemplate>

© Stack Overflow or respective owner

Related posts about c#

Related posts about ASP.NET