关于sql语句的多个查询
下面这句话单个分开来都可以实现,然后合在一起后查询,输入身份证号号字段例如123456,但是datagridview直接跳出所有信息了,多次试验发现是模糊查询like %的问题,求教如何解决这个问题(输入姓名或身份证号或姓名的模糊查询均正确跳出信息)?
sqlstr = "select * from 暂住人员信息表 where 身份证号码='" & SelectPop.TextBox1.Text & "'or 姓名='" & SelectPop.TextBox2.Text & "'or 姓名 like '" & SelectPop.TextBox2.Text & "%'"
String 字符串的拼接问题,如果传递过来是null或""的话sqlstr 就不要拼接这个字段的值。
sqlstr = “select * from 暂住人员信息表 where”;
int k = 0;
if(SelectPop.TextBox1.Text != null && SelectPop.TextBox1.Text . eql("")){
if(k == 0){
sqlstr += 身份证号码='" & SelectPop.TextBox1.Text & "'";
k++;
} else{
sqlstr += 身份证号码= 'or '" & SelectPop.TextBox1.Text & "'";
}
}
可以在后台加判断,判断是哪个输入框传回来的值,如果是姓名栏传回来的就是where 姓名='" & SelectPop.TextBox2.Text ,
那个,具体传输回来的值该怎么写?int rows=cmd.ExecureNonQuery()???
& 这是什么鬼啊 这个符号代表什么啊
vb.net里面需要加这个把text.box里的值括起来
主要问题在【or 姓名 like '" & SelectPop.TextBox2.Text & "%'"】,当你只输入身份证号号字段例如123456时,前两个条件查不出来数据,而【or 姓名 like '" & SelectPop.TextBox2.Text & "%'"】则可以查找出所有数据,原因是当【 姓名 like '" & SelectPop.TextBox2.Text & "%'"】,由于没有输入姓名,则其等同于【''】,则该条件转换为【or 姓名 like '“”%'"】,即【or 姓名 like '%'】,即当项目不为null时,可以查找所有具有姓名的信息【】包括姓名为空串''
楼上是正解,字符拼不接