C# 单击搜索按钮时在另一页的gridview中显示搜索数据
我有两个页面,一个是search.aspx和show.aspx 在search.aspx中,我有两个文本框和一个位置、标题、经验的下拉列表 现在,当人员单击搜索按钮时,如果人员填充了位置,而不是gridview,则显示该位置的所有数据;如果人员填充了位置和标题,则应显示具有位置和标题条件的数据;如果人员填充了所有文本框和下拉列表,则应显示具有该位置标题和经验的数据 现在,由于我在另一个页面中有gridview,所以我通过querystring将所有文本框和下拉列表值传输到另一个页面,但它不显示任何数据 另一个像这样搜索的存储过程应该是什么 我做了一些类似的事情 存储过程-(它是错误的,但它实际上应该是什么?) search.aspx-C# 单击搜索按钮时在另一页的gridview中显示搜索数据,c#,asp.net,C#,Asp.net,我有两个页面,一个是search.aspx和show.aspx 在search.aspx中,我有两个文本框和一个位置、标题、经验的下拉列表 现在,当人员单击搜索按钮时,如果人员填充了位置,而不是gridview,则显示该位置的所有数据;如果人员填充了位置和标题,则应显示具有位置和标题条件的数据;如果人员填充了所有文本框和下拉列表,则应显示具有该位置标题和经验的数据 现在,由于我在另一个页面中有gridview,所以我通过querystring将所有文本框和下拉列表值传输到另一个页面,但它不显示任
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);
}