private void DataLoad()
        {
            string strQuery = "";
            if (txtManagementId.Text.Trim() != "")
            {
                if (strQuery != "")
                {
                    strQuery = strQuery + " AND ";
                }
                strQuery = strQuery + " UserId LIKE '%" + txtManagementId.Text.Trim() + "%' ";
            }            if (txtUserId.Text.Trim() != "")
            {
                if (strQuery != "")
                {
                    strQuery = strQuery + " AND ";
                }
                strQuery = strQuery + " UserNumber LIKE '%" + txtUserId.Text.Trim() + "%' ";
            }            if (cboUserGrade.SelectedValue != "")
            {
                if (strQuery != "")
                {
                    strQuery = strQuery + " AND ";
                }
                strQuery = strQuery + " UserGrade = '" + cboUserGrade.SelectedValue + "' ";
            }
}我定义了一个DateLoad要完成它的搜索功能

解决方案 »

  1.   

    如果不考虑txtManagementId.Text为null的情况,该种写法应该没什么问题
      

  2.   

    什么玩意,判断什么啊,如果是判断sql,自己去数据库查一遍不就知道了
      

  3.   

    private void DataLoad()
            {
                string strQuery = " 1=1 ";
                if (txtManagementId.Text.Trim() != "")
                {
                    strQuery = " and UserId LIKE '%" + txtManagementId.Text.Trim() + "%' ";
                }
    ............
    ............
      

  4.   

    string strQuery = "1=1 ";
    if(...)
     strQuery += " and UserGrade = '" + cboUserGrade.SelectedValue + "' ";
      

  5.   

    不来这么拼SQL的,这就是传说中的sql注入...
      

  6.   

          if (strQuery != "")
                    {
                        strQuery = strQuery + " AND ";
                    }不知楼主为什么要做个这判断,如果为空的话,那你后面的语句再执行会报错的