日期:2014-05-18  浏览次数:20468 次

求一个查询语句
查询一个人的信息时,想实现模糊查询,并且输入条件比较多,而且如果某一个输入框如果不输入的话就默认为所有条件都适合。
  如:有姓名、性别、id号、籍贯、民族等多个输入框,如果只输入id号“00”就查询所有id号中以00开头的人,如果输入了id号和姓名及民族分别为:   “00”、“张”、“汉”就查询所有以id号以“00”开头,并且姓名以“张”开头   、且是汉族的人。
    请大家帮帮忙!谢谢!
    由于是以在输入框中输入的数据为查询条件,所以最好用参数(@)

------解决方案--------------------
select * from table
where ((id like @id + '% ') or (@id is null))
and (([name] like '% ' + @name + '% ') or (@name is null))
and (([sex] = @sex) or (@sex is null))
...

没有输入的参数传入System.DbNull
------解决方案--------------------
从上向下一个一个拼接,虽然效率低,可是出错的概率也小