1

3 つのテキスト ボックスを検証しようとしていますが、それらはすべて単なるテキスト フィールドです。それらはすべて、sqlserver を使用してデータベースに接続されています。

ここで、フォームがまだ空のときにデータベースに空のレコードを追加しないようにする方法を知りたいです。フィールドが空であることをユーザーに伝える Javascript 検証がありますが、メッセージ ボックスで [OK] をクリックすると、ページが更新され、空のレコードが追加されます。

誰かがちょっとしたコードで私を助けることができれば、それは素晴らしいことです.

私のJavaScriptは次のようになります:

    function myAddFunction() {
        var a = document.forms["form1"]["txtFirstName"].value;
        var b = document.forms["form1"]["txtLastName"].value;
        var c = document.forms["form1"]["txtvercode"].value;
        if (a == null || a == "") {
            alert("Please Enter a value");
            return false;
        }
        if (b == null || b == "") {
            alert("Please Enter a value");
            return false;
        }
        if (c == null || c == "") {
            alert("Please Enter a value");
            return false;
        }
        else {
            alert("The Member has been added!");
            return true;
        }
    }

私の Default.aspx.cs ファイルは次のようになります。

protected void btnAdd_Click(object sender, EventArgs e)
{

    SqlConnection conn = new SqlConnection(
    @"Data Source=(LocalDB)\v11.0; AttachDbFilename='|DataDirectory|\employees.mdf';
    Integrated Security=True");

    conn.Open();

    SqlCommand cmd = new SqlCommand("INSERT INTO membership (FirstName, LastName, MembershipClass, VerificationCode) VALUES ('" + txtFirstName.Text + "', '" + txtLastName.Text + "', '" + dropmemberclass.Text + "', '" + txtvercode.Text + "')", conn);

    cmd.ExecuteNonQuery();

    txtFirstName.Text = "";
    txtLastName.Text = "";
    txtvercode.Text = "";
    txtMemID.Text = "";
    txtmemdelete.Text = "";
    lblMemID.Text = "";
    lblMemIDSearch.Text = "";
}
4

4 に答える 4

1

それぞれにRequiredFieldValidatorを追加できTextBoxます。

<asp:RequiredFieldValidator id="RequiredFieldValidator2"
                 ControlToValidate="txtFirstName"
                 Text="First name is a required field"
                 ForeColor="red" 
                 runat=server>

これにより、クライアント側とサーバー側の両方でデータが検証されるため、その Javascript コードは必要ありません。

于 2013-05-09T02:23:58.177 に答える
0

コードを次のように置き換えます。

SqlConnection conn = new SqlConnection(
    if(txtFirstName.Text != "" && txtLastName.Text != "" && txtvercode.Text = "")//And so on...
    {
        @"Data Source=(LocalDB)\v11.0; AttachDbFilename='|DataDirectory|\employees.mdf';
        Integrated Security=True");

        conn.Open();

        SqlCommand cmd = new SqlCommand("INSERT INTO membership (FirstName, LastName, MembershipClass, VerificationCode) VALUES ('" + txtFirstName.Text + "', '" + txtLastName.Text + "', '" + dropmemberclass.Text + "', '" + txtvercode.Text + "')", conn);

        cmd.ExecuteNonQuery();

        txtFirstName.Text = "";
        txtLastName.Text = "";
        txtvercode.Text = "";
        txtMemID.Text = "";
        txtmemdelete.Text = "";
        lblMemID.Text = "";
        lblMemIDSearch.Text = "";
    }
}

追加した条件にさらに追加...

于 2013-05-09T02:14:37.207 に答える
0

これをチェックして

<asp:CustomValidator ID="myCustValidator" runat="server" ControlToValidate="txtFirstName"  OnServerValidate="ServerFirstNameValid"></asp:CustomValidator>

protected void ServerFirstNameValid(object source, ServerValidateEventArgs args)
{
   args.IsValid = !String.IsNullOrEmpty(txtFirstName.Text.Trim());
   if (!args.IsValid)
         myCustValidator.ErrorMessage="First Name should not be Empty";
}
于 2013-05-09T10:41:32.023 に答える