要求された日付がすでに終了している場合、ユーザーが新しいレコードを入力することを制限しようとしています。レコードが配置されるテーブルにすでにその日付が1であるかどうかを確認するためにカウントを試みていました。日付が記載されたテキストボックスにカレンダーエクステンダーがアタッチされています。
私は次のいずれかを取得し続けます:
文字列が有効な日時として認識されませんでした。
また
タイプ「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>