无法使文本框搜索与下拉条件一起使用

时间:2013-11-21 19:24:08

标签: c# asp.net sql

我有2个MS SQL表名词和动词。在ASP.net页面上,我有一个带有未绑定项目动词(选定值1)和名词(选定值2)的下拉列表。我有一个文本框和一个搜索按钮以及一个未绑定的gridview1。

我希望能够在textbox1中输入文字,并根据下拉列表的选择, 我希望它能够搜索动词表或名词表,并在Gridview1中返回这些结果。谢谢

这是我到目前为止,它没有抛出错误,它只是超出第一个if语句。我的连接字符串代码被省略,但它被称为vid。

protected void Button1_Click(object sender, EventArgs e)
{
    if (DropDownList1.SelectedValue == "1")
    {
        string str = "select * from verb where(english like '%' + @search + '%')";

        SqlCommand xp = new SqlCommand(str, vid);
        xp.Parameters.Add("@search", SqlDbType.NVarChar).Value = TextBox1.Text;

        vid.Open();
        xp.ExecuteNonQuery();
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = xp;
        DataSet ds = new DataSet();
        da.Fill(ds, "verb");
        GridView1.DataSource = ds;
        GridView1.DataBind();
        vid.Close();

        if (DropDownList1.SelectedValue == "2")
        {
            string stx = "select * from noun where(english like '%' + @search + '%')";
            SqlCommand xr = new SqlCommand(stx, vid);

            vid.Open();
            xr.ExecuteNonQuery();
            SqlDataAdapter dr = new SqlDataAdapter();
            dr.SelectCommand = xr;
            DataSet dss = new DataSet();
            dr.Fill(dss, "noun");
            GridView1.DataSource = dss;
            GridView1.DataBind();
            vid.Close();
        } } }

1 个答案:

答案 0 :(得分:1)

您正在使用嵌套(如

if (DropDownList1.SelectedValue == "1")
{
    //Populated from verb table
    if (DropDownList1.SelectedValue == "2")
    {
        //Populated from noun table
    }
}

将其更改为DropDownList1.SelectedValue可以是12

if (DropDownList1.SelectedValue == "1")
{
    //Populated from verb table
}else if (DropDownList1.SelectedValue == "2")
{
    //Populated from noun table
}