如果请求的日期已经存在,我试图限制用户输入新记录。我试图进行计数以查看将放置记录的表是否已经具有该日期 1 或不是 0。我有一个日历扩展器附加到具有日期的文本框。
我不断得到:
字符串未被识别为有效的日期时间。
或者
无法将“System.Web.UI.WebControls.TextBox”类型的对象转换为“System.IConvertible”类型。
取决于我尝试过的不同事情。
这是我的代码。
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);
}
^^^ 此版本抛出:“字符串未被识别为有效日期类型”错误
但是,如果我用以下任何一个替换字符串:
/*-----------------------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);
------------------------------------------------------*/
我得到“无法将'System.Web.UI.WebControls.TextBox'类型的对象转换为'System.IConvertible'。” 错误。
我只是想阻止用户输入已经存在的记录日期。
<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>