按名称搜索项目并在另一页面中显示内容

时间:2016-04-30 02:24:52

标签: c# asp.net visual-studio

我想在数据库中使用它的名称在gridview中显示项目信息,我希望gridview在另一个页面中 我尝试了这段代码,但它无法正常工作

在第一页

 protected void Page_Load(object sender, EventArgs e)
    {
    }

    public string txt
    {
        get
        {
            // Return the actual name if it is not null.
            return TextBox1.Text ?? string.Empty;
        }

    }
    }

在第二页

  protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(@"Data Source=FATIMAH;Initial Catalog=makeup;Integrated Security=True");
        string find = "select * from product where(name like '%' +@name+ '%')";
        SqlCommand comm = new SqlCommand(find, con);

        comm.Parameters.Add("@name", SqlDbType.NChar).Value = txt;
        con.Open();
        comm.ExecuteNonQuery();
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = comm;
        DataSet ds = new DataSet();
        da.Fill(ds, "name");
        GridView1.DataSource = ds;
        GridView1.DataBind();
        con.Close();
    }
}

3 个答案:

答案 0 :(得分:0)

您的查询对我而言。试试"select * from product where name like '%@name%'"

您的参数也可以cmd.Parameters.AddWithValue("name", nameVariable);

不确定为什么在这种情况下需要指定类型。

答案 1 :(得分:0)

你的问题不是SQL查询,你的问题是将参数传递给另一个页面。 因此,您可以通过至少4种不同方式实现这一目标。

  1. 按查询字符串发送文字
  2. 通过Post Data传递
  3. 通过Cookie传递
  4. 通过会话发送
  5. 在这种情况下,您可以使用查询字符串,但您必须关心安全问题。 顺便说一句,这取决于你如何重定向到第2页。

答案 2 :(得分:0)

您可以使用QueryString将参数传递到另一个页面。 onclick第一页上的按钮事件执行此操作: -

 protected void Button1_Click(object sender, EventArgs e)
    {
        string search_word = TextBox1.Text.ToString();
        Response.Redirect("~/secondpage.aspx?srch_word=" + search_word);
    }

并在第二页请求查询字符串: -

 protected void Page_Load(object sender, EventArgs e)
    {
        string search = Request.QueryString["srch_word"];   
      //execute sql query to perform search operation
    }