在c#中,我计划用textbox来写一个多条件查询,各条件间用空格键隔开。。。。。
代码如下:string[]tep=this.textbox.Text.Split('');stringmysql="";for(inti=0;i<tep.Length;i...
代码如下:string[] tep=this.textbox.Text.Split('');
string mysql ="";
for (int i=0;i<tep.Length;i++)
{if (i !=tep.Length-1)
{mysql +="Action like '%" + tep[i] + "%' or ";}
else
{mysql +="Action like '%" + tep[i] + "%'";}}
myCommand.CommandText="SELECT*FROM tb WHERE "+ mysql +"";
但每次输入条件后都只能查询最后一个条件,比如输入80 12,就只能查询包含12的选项。。。。。。
求各位大侠帮助!!! 展开
string mysql ="";
for (int i=0;i<tep.Length;i++)
{if (i !=tep.Length-1)
{mysql +="Action like '%" + tep[i] + "%' or ";}
else
{mysql +="Action like '%" + tep[i] + "%'";}}
myCommand.CommandText="SELECT*FROM tb WHERE "+ mysql +"";
但每次输入条件后都只能查询最后一个条件,比如输入80 12,就只能查询包含12的选项。。。。。。
求各位大侠帮助!!! 展开
2个回答
展开全部
首先你需要断点一下,看看你最终形成的SQL语句是否正常(从代码上看没啥问题),然后再把这个SQL语句复制出来放到数据库中去查询一下结果。
你这里面存在有一个问题,拼接SQL语句的时候,尤其是字符类型的,一定要注意将单个单引号替换为双单引号,这样能有效地避免SQL注入。如tep[i].Replace("'","''")
你的代码中的那个判断其实根本就不需要,可以这么写的:
myCommand.CommandText="SELECT*FROM tb WHERE "+ mysql.TrimEnd(',') +"";
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询