日期:2014-05-19  浏览次数:20729 次

关于C#中模糊查询的问题
我.xsd文件中配置了一个查询语句,我现在想把它改成模糊查询,请问该怎么改??我的查询语句是这样的
SELECT   SId,   Sname,   identitynum,   class,   sex,   birth,   nation,   politistate,   foreigner,   recruit
FROM   stu
WHERE   (Sname   LIKE   '% '   +   @sname   +   '% ')
我在预览数据时能正确查询出结果。可是我在应用程序中调试时不知道为什么却查不出结果,不知道为什么,有知道的能说下吗?模糊查询应该很常用吧,大家都怎么用的啊?
PS:不要用Sqlcommand方式的模糊查询,我现在想学学在.xsd文件中直接写函数,对数据库的操作往里传参数就行了。

------解决方案--------------------
可能是ms的一个bug
不过你可以这样子操作
SELECT SId, Sname, identitynum, class, sex, birth, nation, politistate, foreigner, recruit
FROM stu
WHERE (Sname LIKE @sname)
--------------------------------------
在form里面可以定义一个字符,字符里面包括通配符%
string sname = "%丽裔% ";
this.xt_zhbTableAdapter.Fill(this.dataSet1.xt_zhb, sname);
------解决方案--------------------
设个断点
取你的SQL命令
如果有参数,MessageBox.show(参数);
看一下SQL命令和它的参数是否都正确,记住用Like,不用=
------解决方案--------------------
SELECT SId, Sname, identitynum, class, sex, birth, nation, politistate, foreigner, recruit
FROM stu
WHERE (Sname LIKE '% ' "+ @sname + " '% ')
楼主这样试试看
------解决方案--------------------
"SELECT SId, Sname, identitynum, class, sex, birth, nation, politistate, foreigner, recruit
FROM stu
WHERE (Sname LIKE '% "+ @sname + " % ') "

这样看看 ,最好是用SQL里面的事件探查器,跟踪一下这句语句,看到底是什么,就很明了问题出在哪里

------解决方案--------------------
WHERE (Sname LIKE ' "% "+ @sname + " % " ')