我知道当我要查询一个表中的字符串字段的时候可以这么写:即对字符串的查询要加上‘ "+....+" '的变化。
CString strSQL="SELECT * FROM College WHERE Cname='"+m_collegename+"'";
m_pRecordset->Open(_variant_t(strSQL),_variant_t((IDispatch*m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
其中m_collegename是一个CString。现在我的问题是要加上一个查询smallint 字段的条件:
其中 m_collegeid 是一个int型变量。我这么写是错误的:
CString strSQL="SELECT * FROM College WHERE Cid=m_collegeid or Cname='"+m_collegename+"'";
m_pRecordset->Open(_variant_t(strSQL),_variant_t((IDispatch*m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
我的问题是我现在要给m_collegeid加上什么呢?' '不行,“ ”也不行,‘+ +’ 还不行,‘“+ +”’更不行,我都快疯了,网上也没有这方面的说明,找了半天没有找到。
用MessageBox输出strSQL的时候,m_collegename会变成程序中实际的值,但是m_collegeid就还是这个字符串,不能变为在程序中的值,例如1,2等等,所以查询失败.请前辈帮帮忙,个人觉得写个SQL查询语句不难,就是把他作为字符串传递的时候所做的转换让我快疯了。。当初找那个+号就找了N个小时。。
CString strSQL="SELECT * FROM College WHERE Cname='"+m_collegename+"'";
m_pRecordset->Open(_variant_t(strSQL),_variant_t((IDispatch*m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
其中m_collegename是一个CString。现在我的问题是要加上一个查询smallint 字段的条件:
其中 m_collegeid 是一个int型变量。我这么写是错误的:
CString strSQL="SELECT * FROM College WHERE Cid=m_collegeid or Cname='"+m_collegename+"'";
m_pRecordset->Open(_variant_t(strSQL),_variant_t((IDispatch*m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
我的问题是我现在要给m_collegeid加上什么呢?' '不行,“ ”也不行,‘+ +’ 还不行,‘“+ +”’更不行,我都快疯了,网上也没有这方面的说明,找了半天没有找到。
用MessageBox输出strSQL的时候,m_collegename会变成程序中实际的值,但是m_collegeid就还是这个字符串,不能变为在程序中的值,例如1,2等等,所以查询失败.请前辈帮帮忙,个人觉得写个SQL查询语句不难,就是把他作为字符串传递的时候所做的转换让我快疯了。。当初找那个+号就找了N个小时。。
CString strSQL="SELECT * FROM College WHERE Cid=" + m_collegeid + " or Cname='"+m_collegename+"'";
会出现如下问题:
连编译都通不过了::
D:\shujuku2\collegemanegement.cpp(202) : error C2110: cannot add two pointers
insert temp select 1,'aa'
insert temp select 2,'bb'
drop table temp
declare @sql varchar(8000),@id int,@name varchar(10)
select @id=1,@name='aa'
set @sql='select * from temp where id='''+cast(@id as varchar)+''' and name='''+@name+''''
print @sql
exec (@sql)转一下int就行了
str.Format("%d",m_collegeid);
CString strSQL="SELECT * FROM College WHERE Cid='"+m_collegeid+" ' or Cname='"+m_collegename+"'";
搞定!!!
不过还是感谢各位!!!