我的字段验证似乎不起作用!我错过什么了吗?

本文关键字:什么 错过 验证 字段 不起作用 我的 | 更新日期: 2023-09-27 18:16:38

我正在尝试验证字段,因此用户不能使用空字段输入数据。问题是我仍然在添加空字段,所以我的验证不起作用。

首先,我要检查类型是从组合框中选择的。然后我检查用户是否选择了哪种类型,然后根据类型,我在输入数据之前检查字段是否为空字符串。

我错过什么了吗?

private void btnAddEntry_Click(object sender, EventArgs e)
{
    // Multiple level field validations.
    if (cmbType.SelectedIndex != -1)
    {
        if (cmbType.SelectedIndex == 0 && 
            (txtUserName.Text != string.Empty || 
            txtPassword.Text != string.Empty))
        {
            string SQL =
                "INSERT INTO PersonalData([Type], [UserName], [Password]) " +
                "VALUES(@Type, @UserName, @Password)";
            InsertData(SQL);
        }
        else if (cmbType.SelectedIndex == 1 && 
            (txtURL.Text != string.Empty || 
            txtUserName.Text != string.Empty || 
            txtPassword.Text != string.Empty))
        {
            // Creating SQL string. Using [] will prevent any erros
            // that might occur if any other names will be reserved words.
            string SQL =
                "INSERT INTO PersonalData([Type], [URL], [UserName], [Password]) " +
                "VALUES(@Type, @URL, @UserName, @Password)";
            InsertData(SQL);
        }
        else if (cmbType.SelectedIndex == 2 && 
            (txtSoftwareName.Text != string.Empty || 
            txtSerialCode.Text != string.Empty))
        {
            // Creating SQL string. Using [] will prevent any erros
            // that might occur if any other names will be reserved words.
            string SQL =
                "INSERT INTO PersonalData([Type], [SoftwareName], [SerialCode]) " +
                "VALUES(@Type, @SoftwareName, @SerialCode)";
            InsertData(SQL);
        }
        else
        {
            lblMessage.Text = "Please fill out all required fields!";
        }
    }
    else
    {
        lblMessage.Text = "Please select a type first!";
    }
}

我的字段验证似乎不起作用!我错过什么了吗?

您确定要或潜在的领域,而不是和他们?例如,

else if (cmbType.SelectedIndex == 1 && 
    (txtURL.Text != string.Empty && 
    txtUserName.Text != string.Empty && 
    txtPassword.Text != string.Empty))

将只允许您插入数据,如果url,用户名和密码有一个值-使用或只有一个值需要在插入调用之前填写,这意味着您可以有一个有效的url,但没有输入密码和用户名

!string.IsNullOrEmpty(txtUserName.Text.Trim()) 
    && !string.IsNullOrEmpty(txtPassword.Text.Trim())

像这样的检查:

if(txtUserName.Text != string.Empty)
如果用户在txtUserName中输入两个空格,则传递

你应该把你所有的支票都改成

if(txtUserName.Text.Trim() != string.Empty)

.Trim()的调用将删除任何尾随空格,然后然后检查是否有任何剩余....