怎样查询一个含有特殊字符的字段

pu4yang 2004-03-19 04:11:03
数据表student中有一个字符型字段un1,它可能是任意的字符,例如' " , ] [ 等;

我在程序中建立查询:
设有CString 类型的变量 str1;(它可能由用户输入也可能直接赋值,其中可能包含一些特殊字符,例如' " 等;
我要建立的查询语句
strSQL="select * from student where un1='" +str1+"'";
但是由于str1中可能包含特殊字符,例如what's this;
这样运行时就可能得到错误的信息;成了select * from student where un1='what's this'
请问如何解决这个问题.
...全文
186 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DebugXP 2004-03-20
  • 打赏
  • 举报
回复
CString sql,str;
str="what''s this"; //un1等于what's this的记录
sql="SELECT * FROM student where un1= '"+str+"'";

用两个 '' 代替一个 '
其他字符就不用这么处理,直接填写就行。

crystal_heart 2004-03-19
  • 打赏
  • 举报
回复
勤练基本功
pu4yang 2004-03-19
  • 打赏
  • 举报
回复
谢谢!
再问:
如果str中含有"呢,有没有一个无论str中有如何的字符都能正确处理的办法
DebugXP 2004-03-19
  • 打赏
  • 举报
回复
CString sql,str;
str="what's this";
sql="SELECT * FROM student where un1= \""+str+"\"";
pu4yang 2004-03-19
  • 打赏
  • 举报
回复
谢谢,
如果我从别处得到一个str1变量,并准备使用下列语句查询:
strSQL=strSQL="select * from student where un1='" +str1+"'";
我不知道str1的具体的形式怎么办,
替换吗?str1.Replace("'","\\\'");
由没有其他需要处理的情况?
DebugXP 2004-03-19
  • 打赏
  • 举报
回复
CString sql;
sql="SELECT * student where un1= \"what\'s this\"";

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧