高分求帮忙做网页的搜索功能asp.net(C#)代码
软件:sql2005,vs2008数据库:SecondHandCar表BrandCar中字段为BrandID,Brand表CategoryCar中字段为BrandID,C...
软件:sql2005,vs2008
数据库:SecondHandCar
表BrandCar中字段为BrandID,Brand
表CategoryCar中字段为BrandID,CategoryID,Category
表Cars中字段为CarID,CategoryID,BuyTime,BrandCategory,color,Message,Price
其中BrandCar为CategoryCar的父表(BrandID为外键),CategoryCar为Cars的父表(CategoryID为外键)。
有2个页面:Index.aspx,SecondCar.aspx.
现在要求在Index.aspx中添加2的dropdownlist:ddlBrand和ddlCategory.
ddlBrand显示BrandCar中Brand列,ddlCategory中的项必须是ddlBrand中选定项的子项。
再添加2个textbox:txtPrice1和txtPrice2。从Cars表中查找Price所属的价格范围为txtPrice1到txtPrice2。
然后加一个button.
要求当选择了ddlBrand和ddlCategory中的项时,点button自动跳转到SecondCar.aspx页面并且用Gridview显示符合要求的数据。
若不选择ddlBrand和ddlCategory中的项,也可以在txtPrice1和txtPrice2中输入价格范围时点button自动跳转到SecondCar.aspx页面并且用Gridview显示符合要求的数据。
若四个控件中都输入了内容,点button自动跳转到SecondCar.aspx页面并且用Gridview显示符合要求的数据。
代码要全(有解释最好)
谢谢! 展开
数据库:SecondHandCar
表BrandCar中字段为BrandID,Brand
表CategoryCar中字段为BrandID,CategoryID,Category
表Cars中字段为CarID,CategoryID,BuyTime,BrandCategory,color,Message,Price
其中BrandCar为CategoryCar的父表(BrandID为外键),CategoryCar为Cars的父表(CategoryID为外键)。
有2个页面:Index.aspx,SecondCar.aspx.
现在要求在Index.aspx中添加2的dropdownlist:ddlBrand和ddlCategory.
ddlBrand显示BrandCar中Brand列,ddlCategory中的项必须是ddlBrand中选定项的子项。
再添加2个textbox:txtPrice1和txtPrice2。从Cars表中查找Price所属的价格范围为txtPrice1到txtPrice2。
然后加一个button.
要求当选择了ddlBrand和ddlCategory中的项时,点button自动跳转到SecondCar.aspx页面并且用Gridview显示符合要求的数据。
若不选择ddlBrand和ddlCategory中的项,也可以在txtPrice1和txtPrice2中输入价格范围时点button自动跳转到SecondCar.aspx页面并且用Gridview显示符合要求的数据。
若四个控件中都输入了内容,点button自动跳转到SecondCar.aspx页面并且用Gridview显示符合要求的数据。
代码要全(有解释最好)
谢谢! 展开
3个回答
展开全部
我中午都没怎么休息给你写了一个这样的小例子!
怎么给你?还是我都发上来?
我没按照你的做(我做了你就偷懒了...),但是和你的需求一样.1级分类,二级分类,产品.3张表.
道理是一样的.
要例子直接Hi我!
//中午没怎么休息给你写的,分要给我。要不然我太心凉了。
//你要实现一个组合搜索,不一定非要在2个页面,我在这里做到一个页面了。如果你要做到2个页面可以将第二个下拉框的值和文本框的值保存到session,再第二个页面提取出来进行查询
//那几行完全相同的数据库查询代码 你可以抽出一个方法来,重复使用,在这我直接copy的,因为时间紧。
//整个小例子比较简单 不做多解释了。
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack){
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from [category1]";
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
//以上几行连接数据库读取数据不解释
this.DropDownList1.DataSource = ds;
this.DropDownList1.DataTextField = "category1Name";
this.DropDownList1.DataValueField = "category1Id";
this.DropDownList1.DataBind();
//设置Dropdownlist显示的字段
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = string.Format("select * from [category2] where category1={0}",this.DropDownList1.SelectedValue.ToString());//按照第一个下拉框选中的值搜索!
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
this.DropDownList2.DataSource = ds;
this.DropDownList2.DataTextField = "category2Name";
this.DropDownList2.DataValueField = "category2Id";
this.DropDownList2.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = string.Format("select * from [product] where category2Id={0} and productprice between {1} and {2}", this.DropDownList2.SelectedValue.ToString(), this.TextBox1.Text.ToString(), this.TextBox2.Text.ToString());//根据第二个下拉框的值和文本框的内容组合搜索
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
//以上几行查询数据库不做解释。 程序中出现多次。可抽出来做成一个方法。代码复用!在这我直接copy的。道理一样
this.GridView1.DataSource = ds; //将查询出的结果给gridview展示
this.GridView1.DataBind();
}catch(Exception ep)
{
Response.Write("<script> alert('请正确输入内容!')</script>");
}
}
怎么给你?还是我都发上来?
我没按照你的做(我做了你就偷懒了...),但是和你的需求一样.1级分类,二级分类,产品.3张表.
道理是一样的.
要例子直接Hi我!
//中午没怎么休息给你写的,分要给我。要不然我太心凉了。
//你要实现一个组合搜索,不一定非要在2个页面,我在这里做到一个页面了。如果你要做到2个页面可以将第二个下拉框的值和文本框的值保存到session,再第二个页面提取出来进行查询
//那几行完全相同的数据库查询代码 你可以抽出一个方法来,重复使用,在这我直接copy的,因为时间紧。
//整个小例子比较简单 不做多解释了。
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack){
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from [category1]";
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
//以上几行连接数据库读取数据不解释
this.DropDownList1.DataSource = ds;
this.DropDownList1.DataTextField = "category1Name";
this.DropDownList1.DataValueField = "category1Id";
this.DropDownList1.DataBind();
//设置Dropdownlist显示的字段
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = string.Format("select * from [category2] where category1={0}",this.DropDownList1.SelectedValue.ToString());//按照第一个下拉框选中的值搜索!
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
this.DropDownList2.DataSource = ds;
this.DropDownList2.DataTextField = "category2Name";
this.DropDownList2.DataValueField = "category2Id";
this.DropDownList2.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = string.Format("select * from [product] where category2Id={0} and productprice between {1} and {2}", this.DropDownList2.SelectedValue.ToString(), this.TextBox1.Text.ToString(), this.TextBox2.Text.ToString());//根据第二个下拉框的值和文本框的内容组合搜索
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
//以上几行查询数据库不做解释。 程序中出现多次。可抽出来做成一个方法。代码复用!在这我直接copy的。道理一样
this.GridView1.DataSource = ds; //将查询出的结果给gridview展示
this.GridView1.DataBind();
}catch(Exception ep)
{
Response.Write("<script> alert('请正确输入内容!')</script>");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询