C#中SQL 条件语句where后面的通配符如何用参数取代

string strsql = "select * from A where (" + 变量a + ") (" + 变量b + ") '%" + tbZiChanJX.Text + "%' ";
1、其中的变量a是表A里面的字段名,因为字段名原本就是string类型,专业那个传没有问题
2、变量b是SQL语句中的通配符如(= < > like)等等。。。因为通配符不是string类型,所以不能直接跟变量a一样传参。
要怎么做?
为了条件匹配

第1个回答  2018-02-01
建议可以采用这种形式:
string str = string.format("select * from Table where ID = '{0}' ",para)追问

d=Textboks.Text;

貌似用占位符可以解决,但是新的问题又出来了。后面取的是Textboks值,占位符{0}是=就是{1}没有%%,占位符{0}是like,占位符{1}必须有%%,这个要怎么解决。同样用占位符,提示Varchar类型转int失败什么的。

追答

你还是不能理解字符串格式化的意义,格式化后就不用拼接那么麻烦了!
string.format (select * from Table where uname like '%{0}%',para)

相似回答