string sql="select * from Contact where cName Like '*"+txtName.Text+"*'""; string sql2=sql.Replace(",";"“");
什么意思,c#中你的写法没有错误 string strQuery = "select * from Contact where cName Like '*"+txtName.Text+"*'";
没有错误吗?可是不行啊,用'号的话就查不出记录的,非得用"号。我在ACCESS里面试了
ds=db.execSqlForDataSet("select * from Contact where cName Like \"*"+txtName.Text+"*\""); 这样行吗?添加转义字符 \"的方式
知道问题所在了 ds=db.execSqlForDataSet("select * from Contact where cName Like '%"+txtName.Text+"%' OR nickname Like '%"+txtNickName.Text+"%'");如果没有OR后面的那句,就查得很准确,如果有OR的话,就必须在两个文本框输入一样的内容才可以查准确,不然就会查出所有记录,不管是否符合条件。 这是为什么呢?
SQL本来就有问题,不关Access的事。WHERE A Like 'xxx' 的效果等于:WHERE A='xxx' WHERE A LIKE '%xxx%'的效果:查找A包括xxx的结果
string sql2=sql.Replace(",";"“");
string strQuery = "select * from Contact where cName Like '*"+txtName.Text+"*'";
这样行吗?添加转义字符 \"的方式
ds=db.execSqlForDataSet("select * from Contact where cName Like '%"+txtName.Text+"%' OR nickname Like '%"+txtNickName.Text+"%'");如果没有OR后面的那句,就查得很准确,如果有OR的话,就必须在两个文本框输入一样的内容才可以查准确,不然就会查出所有记录,不管是否符合条件。
这是为什么呢?
WHERE A LIKE '%xxx%'的效果:查找A包括xxx的结果
对,但是如果在C#里面写的话就必须得写%号而不是*号。