2016-05-14 11 views
0

私はVisual Studio 4.6.01038を使用しています。私はASP.NETでかなり新しいです。私は非常に簡単な登録ページを持っており、ユーザーは彼の名前、通り、電話番号を入力します。入力ボックスの入力を制御して、ユーザーが特定の方法で入力する必要があるようにします。ASP.NETでユーザー入力を検証するにはどうすればよいですか?

1)名/ユーザ名フィールドはブランクではいけません、と数字

2)通りの名前を含めることはできません例えば、それは数である必要があり、それは宇宙である必要があり、文字で始まるものストリート12

3)電話番号は数字だけ

ユーザーがこれらのフォーマット以外を選択した場合

が含まれている必要があり、彼は再び入力するように求められます。 さて、すべての人々は、私はそれを行う簡単な方法を探しています。 [特定のテキストフィールドのプロパティタブから来るかもしれません] または、プログラムで行うと、どこでやるべきですか?

Register.aspx:ここ

は、私が働いているコードがある

<form id="form1" runat="server"> 
    <div> 
    Name<asp:TextBox ID="namebox" runat="server" OnTextChanged="namebox_TextChanged"></asp:TextBox> 
     <br /> <br /> 
&nbsp;Street<asp:TextBox ID="streetbox" runat="server"></asp:TextBox> 
     <br /> <br /> 
Phone Number <asp:TextBox ID="phonebox" runat="server"></asp:TextBox> 
<asp:Button ID="Button1" runat="server" Text="Register" OnClick="Button1_Click" /><br /> 
     <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
     <br /><br /> 

    </div> 
    </form> 

Register.aspx.cs:

protected void Button1_Click(object sender, EventArgs e)//register button 
    { 
     try 
     { 
      SqlCommand myCommand = new SqlCommand(); 
      //SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings("Data Source=(LocalDB);MSSQLLocalDB;AttachDbFilename=|DataDirectory|;Database.mdf;Integrated Security=True")); 

      SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\lab1.mdf;Integrated Security=True"); 
      //SqlConnection conn = new SqlConnection("ConnectionStringBooks"); 
      conn.Open(); 

      myCommand = new SqlCommand("INSERT INTO userdata(username, street, telephonenum) VALUES ('" + namebox.Text + "','" + streetbox.Text + "','" + phonebox.Text + "')", conn); 

      myCommand.ExecuteNonQuery(); 
      Response.Redirect("~/Store.aspx?name="+namebox.Text+""); 
     } 
     catch (Exception ex) 
     { 
      Label1.Text = ex.Message; 
      Label1.Visible=true; 
     } 

    } 
+0

私は入力の有効/形式を確認するために正規表現を使用することをお勧めします:https://msdn.microsoft.com/en-us/library/ms972966.aspx –

+0

'ストリート名は文字で始まり、スペースでなければなりません。数字でなければなりません。' [Falsehoodsプログラマーがアドレスを信じることを強くお勧めします](https://www.mjt.me.uk/posts/false-programers-believe-about-addresses /) –

+0

'電話番号は数字だけを含んでいなければなりません。' [Falsehoods Programmersは電話番号について](https://github.com/googlei18n/libphonenumber/blob/master/FALSEHOODS。 md) –

答えて

1

ASP.NETの検証コントロールは、ユーザー入力を検証します無駄な、認証されていない、または矛盾するデータが格納されないようにします。以下

<asp:RequiredFieldValidator ID="rfvcandidate" 
    runat="server" ControlToValidate ="ddlcandidate" 
    ErrorMessage="Please choose a candidate" 
    InitialValue="Please choose a candidate"> 

</asp:RequiredFieldValidator> 

使用リンク: http://www.tutorialspoint.com/asp.net/asp.net_validators.htm

0

あなたは、ボタンのクリックイベントに正規表現を使用することができます。

新しい正規表現オブジェクトを作成したいC#で正規表現を使用するには:

Regex regex = new Regex([expression]); 

をし、文字列が式にマッチするかどうかを確認:あなたが必要があると思い

if(regex.match([string])){ 
    //ACCEPT DATA 
}else{ 
    //REFUSE DATA 
} 

式は以下のとおりです。

  • 名/ユーザー名:/ \ D +/
  • 電話番号:/ \ dは+/
  • ストリート:/ \ 1(\ D)\ 2(\ sの)\ 3(\ D)/

私はカップルにこのオリ言及必須フィールドのバリデータとしたい:

<asp:RequiredFieldValidator ID="rfvcandidate" 
runat="server" ControlToValidate ="ddlcandidate" 
ErrorMessage="Please choose a candidate" 
InitialValue="Please choose a candidate"> 

私は正規表現にかなり新しいです、ストリートのための私の答えは、最も効率的になると信じていないので、誰かがもっと良いものを提案した場合、私は興味があります!これを言う私の推論は、 't 1'と一致するので、私が提供している正規表現は 'ストリート12'が見れば通過するということです。だから、誰かが「ストリート12ストリート12ストリート12」に入るのを止めない。

正規表現のための良いウェブサイトがあるように思わ:http://regexr.com

関連する問題