listview的搜索框无法正常工作

时间:2012-11-28 21:08:33

标签: c# asp.net sql-server

您好我正在尝试创建一个搜索ListView的搜索框,我设法做到这一点,如果我让它只能通过用户名进行搜索,它就可以工作。只要我用参数替换用户名,代码就不起作用不再。这是我的代码:

string searchSelectBox = SearchSelectDropDown.SelectedItem.Text;

GetAllUsersFromDb.SelectCommand =
    "SELECT aspnet_Users.UserName, aspnet_Roles.RoleName, "
    + "aspnet_Membership.Email, aspnet_Membership.LastLoginDate "
    + "FROM aspnet_Users "
    + "INNER JOIN aspnet_UsersInRoles "
    + "ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId "
    + "INNER JOIN aspnet_Roles "
    + "ON aspnet_UsersInRoles.RoleId = aspnet_Roles.RoleId "
    + "INNER JOIN aspnet_Membership "
    + "ON aspnet_Users.UserId = aspnet_Membership.UserId "
    + "WHERE @SelectField LiKE @Param";
GetAllUsersFromDb.SelectParameters.Clear();
GetAllUsersFromDb.SelectParameters.Add("SelectField" , searchSelectBox);
GetAllUsersFromDb.SelectParameters.Add("Param" , SearchBox.Text);
GetAllUsersFromDb.DataBind();
textListView.DataBind();    

searchSelectBox可以采用的值是用户名,漫游名称和电子邮件

如果我用用户名替换@SelectField并输入corect用户名,那么sear可以正常工作,但实际上并没有。

这是什么问题?

1 个答案:

答案 0 :(得分:2)

试试这个

string searchSelectBox = SearchSelectDropDown.SelectedItem.Text;

    GetAllUsersFromDb.SelectCommand =
       string.Format("SELECT aspnet_Users.UserName, aspnet_Roles.RoleName, 
                      aspnet_Membership.Email, aspnet_Membership.LastLoginDate 
                      FROM aspnet_Users 
                      INNER JOIN aspnet_UsersInRoles ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId 
                      INNER JOIN aspnet_Roles ON aspnet_UsersInRoles.RoleId = aspnet_Roles.RoleId 
                      INNER JOIN aspnet_Membership ON aspnet_Users.UserId = aspnet_Membership.UserId 
                      WHERE {0} LiKE @Param", searchSelectBox);
    GetAllUsersFromDb.SelectParameters.Clear();

    GetAllUsersFromDb.SelectParameters.Add("Param" , SearchBox.Text);
    GetAllUsersFromDb.DataBind();
    textListView.DataBind();