搜索功能仅适用于一个变量 [英] Search function only works with one variable

查看:81
本文介绍了搜索功能仅适用于一个变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I have this Code and it works perfectly, but as soon as I want to write more LIKE Operators my whole gridview changes.

Example: I want:

AND (Number LIKE '%' + @Number + '%') OR (Place LIKE '%' + @Place + '%')

cmd.Parameters.AddWithValue("@Number", txtSearch.Text.Trim()); cmd.Parameters.AddWithValue("@Place ", txtSearch.Text.Trim());

my Gridview ignores the session and on Login you can see every users data.
Login is the username.

but If I keep it like this it works perfectly: 





我尝试过:





What I have tried:

protected void btnFilter_Click(object sender, EventArgs e)
    {

        string name = Session["user"].ToString();


        string constr = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;

        using (SqlConnection conn = new SqlConnection(constr))
        {

            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = conn;
                cmd.CommandText = @"SELECT * From Product
                                           Inner Join User
                                           ON product.user = user.id
                                           Where user.login = @User
                                           AND Status = @Status
                                           AND (Number LIKE '%' + @Number + '%')";

                cmd.Parameters.AddWithValue("@User", name);
                cmd.Parameters.AddWithValue("@Status", DropDownList1.SelectedValue);
                cmd.Parameters.AddWithValue("@Number", txtSearch.Text.Trim());
             
                using (SqlDataAdapter ad = new SqlDataAdapter(cmd))
                {
                    DataTable dt = new DataTable();
                    ad.Fill(dt);
                    GridView1.DataSource = dt;
                    GridView1.DataBind();
                }
            }
        }
    }







<asp:GridView ID="GridView1"  DataKeyNames="Number" AllowSorting="true" OnRowDataBound="RowDataBound"  runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" Visible="false" />
            <asp:BoundField DataField="Number" HeaderText="Nummer" SortExpression="Number" />
            <asp:BoundField DataField="Login" HeaderText="Datum" SortExpression="Login" />
 	<asp:BoundField DataField="Date" HeaderText="Datum" SortExpression="Date" />
 

        </Columns>
    </asp:GridView>

推荐答案

试用括号:

Try brackets:
AND ((Number LIKE '%' + @Number + '%') OR (Place LIKE '%' + @Place + '%'))


这篇关于搜索功能仅适用于一个变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆