在vs2010中动态的通过edit控件输入id值,为什么传给id的只是第一个数字?

例如输入21,m_ed打印的值为21,id的值为2?
char sSql[129];
sprintf(sSql,"SELECT * FROM information WHERE id='%s'",m_ed);
pRst->Open(sSql,_variant_t((IDispatch*)pConn),adOpenStatic,adLockOptimistic,adCmdText);

直接sprintf(sSql,"SELECT * FROM information WHERE id=21");可以

m_ed是否被改变,是否无效了。sSql打印看看具体内容

'%s'
不需要单引号。

sprintf用错了,改为%d拼接就可以了