请教一下:
我做一个查询功能的用户控件,如下劣图:
“按 DropDownList 搜索 TextBox Button(查询)”
我是采用ListItem编辑DropDownList的选项,然后定义查询如下:
protected void btnSearch_Click(object sender, EventArgs e)
{
Response.Redirect("~/BBS/SearchTitles.aspx?" + ddlSearch.SelectedValue.ToString() + "=" + txtSearch.Text.Trim()+""); }
在SearchTitles.aspx中,我用DataList控件,在ItemTemplate中对各数据进行了类似Eval("bookname")的绑定,主要代码如下:
protected void Page_Load(object sender, EventArgs e)
{
string titleName="", titleArea="";
String sqlconn = "Server=. \\SQLEXPRESS;DataBase=Test;Integrated Security=True";
SqlConnection mysqlConn = new SqlConnection(sqlconn);
// mysqlConn.Open();
SqlCommand myComm;
titleName = Request.QueryString["titleName"];
titleArea = Request.QueryString["titleArea"];
if (titleName != "")
{
string sql1 = "select UserList.User_image,Titles.title,Titles.updateDate,Titles.lookNum,Titles.answerNum,Titles.User_Name,Areas.area_Name from Titles,UserList,Areas where UserList.User_name=Titles.User_Name and Areas.area_ID=Titles.area_ID and Titles.title_ID='"+Request.QueryString["title_ID"]+"' and Titles.title like '%" + titleName + "%'";
myComm = new SqlCommand(sql1, mysqlConn);
mysqlConn.Open();
SqlDataReader dr1 = myComm.ExecuteReader();
DataList1.DataSource = dr1;
DataList1.DataBind();
mysqlConn.Close();
}
if (titleArea != "")
{
string sql2 = "select UserList.User_image,Titles.title,Titles.updateDate,Titles.lookNum,Titles.answerNum,Titles.User_Name,Areas.area_Name from Titles,UserList,Areas where UserList.User_name=Titles.User_Name and Areas.area_ID=Titles.area_ID and Titles.title_ID='" + Request.QueryString["title_ID"] + "'and Areas.area_Name like '%" + titleArea + "%'";
myComm = new SqlCommand(sql2, mysqlConn);
mysqlConn.Open();
SqlDataReader dr2 = myComm.ExecuteReader();
DataList1.DataSource = dr2;
DataList1.DataBind();
mysqlConn.Close();
}
// mysqlConn.Close();
}
我运行通过了,可是却查询不到结果,请问,这是为什么?
是不是带颜色部分出问题呢?还有,Request.QueryString[""]里面的值是数据库里面的属性值呢,还是自己定义的值,我是采用后一种的,编辑DropDownList选项:0 帖子主题 titleName;1 帖子区域 titleArea
但是,在数据库中,两个选项的属性值分别为:title area_name
我做一个查询功能的用户控件,如下劣图:
“按 DropDownList 搜索 TextBox Button(查询)”
我是采用ListItem编辑DropDownList的选项,然后定义查询如下:
protected void btnSearch_Click(object sender, EventArgs e)
{
Response.Redirect("~/BBS/SearchTitles.aspx?" + ddlSearch.SelectedValue.ToString() + "=" + txtSearch.Text.Trim()+""); }
在SearchTitles.aspx中,我用DataList控件,在ItemTemplate中对各数据进行了类似Eval("bookname")的绑定,主要代码如下:
protected void Page_Load(object sender, EventArgs e)
{
string titleName="", titleArea="";
String sqlconn = "Server=. \\SQLEXPRESS;DataBase=Test;Integrated Security=True";
SqlConnection mysqlConn = new SqlConnection(sqlconn);
// mysqlConn.Open();
SqlCommand myComm;
titleName = Request.QueryString["titleName"];
titleArea = Request.QueryString["titleArea"];
if (titleName != "")
{
string sql1 = "select UserList.User_image,Titles.title,Titles.updateDate,Titles.lookNum,Titles.answerNum,Titles.User_Name,Areas.area_Name from Titles,UserList,Areas where UserList.User_name=Titles.User_Name and Areas.area_ID=Titles.area_ID and Titles.title_ID='"+Request.QueryString["title_ID"]+"' and Titles.title like '%" + titleName + "%'";
myComm = new SqlCommand(sql1, mysqlConn);
mysqlConn.Open();
SqlDataReader dr1 = myComm.ExecuteReader();
DataList1.DataSource = dr1;
DataList1.DataBind();
mysqlConn.Close();
}
if (titleArea != "")
{
string sql2 = "select UserList.User_image,Titles.title,Titles.updateDate,Titles.lookNum,Titles.answerNum,Titles.User_Name,Areas.area_Name from Titles,UserList,Areas where UserList.User_name=Titles.User_Name and Areas.area_ID=Titles.area_ID and Titles.title_ID='" + Request.QueryString["title_ID"] + "'and Areas.area_Name like '%" + titleArea + "%'";
myComm = new SqlCommand(sql2, mysqlConn);
mysqlConn.Open();
SqlDataReader dr2 = myComm.ExecuteReader();
DataList1.DataSource = dr2;
DataList1.DataBind();
mysqlConn.Close();
}
// mysqlConn.Close();
}
我运行通过了,可是却查询不到结果,请问,这是为什么?
是不是带颜色部分出问题呢?还有,Request.QueryString[""]里面的值是数据库里面的属性值呢,还是自己定义的值,我是采用后一种的,编辑DropDownList选项:0 帖子主题 titleName;1 帖子区域 titleArea
但是,在数据库中,两个选项的属性值分别为:title area_name
你加个断点调下不就知道了
Response.Redirect("~/BBS/SearchTitles.aspx?" + ddlSearch.SelectedValue.ToString() + "=" + txtSearch.Text.Trim()+"");
应该改为:
Response.Redirect("~/BBS/SearchTitles.aspx?" + ddlSearch.SelectedValue.Trim() + "=" + txtSearch.Text.Trim()+"");
这样就可以了!!