0

我的网站在虚拟数据库中搜索押韵。在代码中,如果文本框是 != 进行搜索,否则显示错误,但是,即使搜索框中没有任何内容,它也会显示结果。这是为什么?

protected void Page_Load(object sender, EventArgs e)
    {
        ListBox1.Items.Clear();
        if (Page.PreviousPage != null)
        {
            TextBox SourceTextBox =
              (TextBox)Page.PreviousPage.FindControl("TextBox1");
            if (SourceTextBox != null)
            {
                cnn.Open();
                SqlCommand cmd = new SqlCommand("SELECT kelimeler FROM kelimelerim WHERE kelimeler LIKE @searchkey", cnn);
                cmd.Parameters.AddWithValue("@searchkey", "%" + SourceTextBox.Text);
                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        ListBox1.Items.Add(dr.GetString(0));
                    }
                }
                cnn.Close();
            }

            else
            {
                ListBox1.Items.Add("Lütfen bir harf giriniz");
            }
        } 
    }
4

3 回答 3

1

变量 SourceTextBox 永远不会为空,因为控件总是在发布期间呈现和提交。您需要检查 TextBox 的文本而不是 TextBox 对象,以确定是否输入了任何文本。

if (!string.IsNullOrEmpty(SourceTextBox.Text))
{
    /* do stuff */
}
于 2013-09-08T22:48:01.530 回答
1

您正在检查控件是否存在。它当然存在,你创造了它。

您必须检查它的值是否为空

于 2013-09-08T22:48:47.797 回答
0
if (SourceTextBox != null)
{

}

更改此格式

if (SourceTextBox.Text != null || !String.isNullorEmpty(SourceTextbox.Text))
{

}
于 2013-09-09T06:08:56.340 回答