Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击搜索按钮时在另一页的gridview中显示搜索数据_C#_Asp.net - Fatal编程技术网

C# 单击搜索按钮时在另一页的gridview中显示搜索数据

C# 单击搜索按钮时在另一页的gridview中显示搜索数据,c#,asp.net,C#,Asp.net,我有两个页面,一个是search.aspx和show.aspx 在search.aspx中,我有两个文本框和一个位置、标题、经验的下拉列表 现在,当人员单击搜索按钮时,如果人员填充了位置,而不是gridview,则显示该位置的所有数据;如果人员填充了位置和标题,则应显示具有位置和标题条件的数据;如果人员填充了所有文本框和下拉列表,则应显示具有该位置标题和经验的数据 现在,由于我在另一个页面中有gridview,所以我通过querystring将所有文本框和下拉列表值传输到另一个页面,但它不显示任

我有两个页面,一个是search.aspx和show.aspx

在search.aspx中,我有两个文本框和一个位置、标题、经验的下拉列表

现在,当人员单击搜索按钮时,如果人员填充了位置,而不是gridview,则显示该位置的所有数据;如果人员填充了位置和标题,则应显示具有位置和标题条件的数据;如果人员填充了所有文本框和下拉列表,则应显示具有该位置标题和经验的数据

现在,由于我在另一个页面中有gridview,所以我通过querystring将所有文本框和下拉列表值传输到另一个页面,但它不显示任何数据

另一个像这样搜索的存储过程应该是什么

我做了一些类似的事情

存储过程-(它是错误的,但它实际上应该是什么?)

search.aspx-

 protected void imgbtnsubmit_Click(object sender, ImageClickEventArgs e)
{
   Response.Redirect("show.aspx?loc,title,exp="+textloc.text+txttitle.Text+dropdownlistexperience.SelectedItem);

}
在show.aspx页面中,它在querystring中获取该值,并在grdview中显示特定数据

show.aspx-

protected void Page_Load(object sender, EventArgs e)
{

    if (!IsPostBack)
    {
        dal.location = Request.QueryString["loc"];
        dal.title = Request.QueryString["title"];
        dal.exerience = Request.QueryString["exp"];
        GridView1.DataSource = bal.search(dal);
        GridView1.DataBind();
    }
}
巴尔-


错误-过程或函数“搜索”需要未提供的参数“@Location”。

您的查询字符串格式不正确,textloc.text应为“.text”

顺便说一句,这是获得SQL注入攻击的好方法

    In Search Page You did mistake..
        protected void imgbtnsubmit_Click(object sender, ImageClickEventArgs e)
          {
            Response.Redirect("show.aspx?loc,title,exp="+**textloc.text**+txttitle.Text+dropdownlistexperience.SelectedItem);
            }

txtloc.text…应该是txtloc.text

我想..在搜索页面中,您没有错误地单击(对象发送者,ImageClickEventArgs e){Response.Redirect(“show.aspx?loc,title,exp=“+textloc.text+txttitle.text+dropdownStexperience.SelectedItem);}请参阅差异textloc.text+txttitle.text textloc.text是小写,应该是txtloc.text对不起,我在这里写了txtloc.text,但没有复制和粘贴,这就是为什么它很小,顺便说一句,避免sql注入的另一种方法是什么?如果您打算使用查询字符串,那么在允许输入到存储过程之前,您确实需要检查或清除输入,请参阅本文。网络上有一些机器人只是去寻找SQL注入点。谢谢@Tony,这个查询字符串格式有效,我将对此进行检查,您能告诉我有关存储过程的任何信息吗?它显示GridView中的所有数据GridView AutoGenerateColumns默认设置为true,这意味着它将显示您提供的数据集中的所有列。您可以在存储过程中选择较少的字段,也可以关闭AutoGenerateColumns并使用绑定/模板字段。这是一个教程,谢谢amol,但我在这里编辑的问题拼写错误,但问题在于querystring格式
 public DataTable search(portalDal dal)
{

    con.Open();
    cmd = new SqlCommand("search", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@Location", dal.location);
    cmd.Parameters.AddWithValue("@Experience", dal.experience);
    cmd.Parameters.AddWithValue("@Title", dal.title);
    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dt);
    con.Close();
    return dt;
}
    protected void imgbtnsubmit_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect(string.Format("show.aspx?loc={0}&title={1}&exp={1}", textloc.Text, txttitle.Text, dropdownlistexperience.SelectedItem));
    }
    In Search Page You did mistake..
        protected void imgbtnsubmit_Click(object sender, ImageClickEventArgs e)
          {
            Response.Redirect("show.aspx?loc,title,exp="+**textloc.text**+txttitle.Text+dropdownlistexperience.SelectedItem);
            }