我想限制用戶輸入新記錄,如果請求的日期已經退出。我試圖做一個計數,看看記錄將被放置的表是否已經有該日期1或不是0.我有一個日曆擴展器附加到一個文本框有日期。試圖將字符串轉換爲日期時間
我不斷收到或者是:
字符串未被識別爲有效的DateTime。
或
無法轉換類型 '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>
當得到這個異常時,看到傳遞的實際字符串會有幫助。 – nieve
我編輯它顯示aspx代碼?即使進入頁面,該錯誤也會阻止我。 – user1596472
DateTime scheduledDate = DateTime.ParseExact(startd.Text,「dd/MM/yyyy」,null); – user1596472