0

エラーを示すページ

    DateTime startDate = DateTime.ParseExact(txtstart.Text, "MM/dd/yyyy", null);
    DateTime endDate = DateTime.ParseExact(txtend.Text, "MM/dd/yyyy", null);

    string n1 = DropDownList2.SelectedItem.Text;

    if (DropDownList1.SelectedItem.Text == "Membership")// here you can add selectedindex as well
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ToString());
        con.Open();
        SqlDataAdapter adapter = new SqlDataAdapter("select p.Name,m.* from Membership_det m INNER JOIN Personal_det p  ON m.FID= p.FID where m.updateDate  between @Start and @End and m.FID =" + n1 + "", con);
        adapter.SelectCommand.Parameters.Add("@Start", SqlDbType.Date).Value = startDate;
        adapter.SelectCommand.Parameters.Add("@End", SqlDbType.Date).Value = endDate;
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        con.Close();
        GridView1.DataSource = dt;
        GridView1.DataBind();

        // you can use this datatable dt to get that items and use dt to bind the corresponding control.

    }

日付検証コードが必要です。mm/dd/yyyy の形式で日付を受け入れる必要があります。そうしないと、エラー メッセージが表示されます。

aspxコードを以下に示します

    <asp:TextBox ID="txtstart" runat="server" ></asp:TextBox>


    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please Enter in the date in MM/dd/yyyy Format" ControlToValidate="txtstart"></asp:RequiredFieldValidator>

    <asp:Label ID="Label2" runat="server" Text="End Date:"></asp:Label>

    <asp:TextBox ID="txtend" runat="server" ></asp:TextBox>
 <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Please Enter in the date in MM/dd/yyyy Format" ControlToValidate="txtend"></asp:RequiredFieldValidator>    

デバッグ メッセージが表示され、コードに直接移動します。プログラムの実行中にエラーが表示されます。ページ自体にエラー メッセージを表示したいだけです。

4

4 に答える 4

2

テキストボックス 10 の maxlength プロパティを設定します。

<asp:TextBox ID="txtvaliddate" runat="server" MaxLength="10"></asp:TextBox>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
                   ControlToValidate="txtvaliddate" ValidationExpression="^(([1-9])|(0[1-9])|(1[0-2]))\/((0[1-9])|([1-31]))\/((19|20)\d\d)$" Display="Dynamic" SetFocusOnError="true" ErrorMessage="invalid date">*</asp:RegularExpressionValidator>

in c# 使用する日付形式を指定する必要がある場合は、DateTime.ParseExact を使用します (MSDN記事)

string[] formats= { "MM/dd/yyyy" }
DateTime dateTime = DateTime.ParseExact(txtstart.Text, formats, new CultureInfo("en-US"), DateTimeStyles.None);
于 2013-09-12T07:10:26.547 に答える
0

検証式を使用

ValidationExpression="(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d)"
于 2013-09-12T07:13:52.350 に答える