读书人

ACCESS和VC中数据类型的有关问题

发布时间: 2012-01-26 19:40:46 作者: rapoo

ACCESS和VC中数据类型的问题
刚接触数据库,想问一下ACCESS中文本类型与VC中什么数据类型对应阿?
我有这样一个查询语句:
CString sqlsearch= "SELECT Teacher,Class,Course FROM jiaoshi WHERE Jiaoxuelou=m_Building_Num AND Roomnumber=m_Room_Num AND Weeknumber=m_Week_Num AND Xingqi=m_Xingqiji AND Dijijieke=m_Class_Num ";
m_pRecordset= m_pConnection-> Execute(_bstr_t(sqlsearch),&RecordsAffected,adCmdText);
执行时老是提示说至少缺少一个参数
在这里,m_Building_Num ,m_Xingqiji ,m_Class_Num是CSting 类型
m_Room_Num ,m_Week_Num 使int型
在ACCESS中,Jiaoxuelou,Xingqi,Dijijieke是文本类型
Roomnumber,Weeknumber是数字类型

ACCESS是已经创建好的,不知道是不是这些参数的类型有问题,请各位帮忙一下,先谢了。

[解决办法]

你的SQL语句出问题了。

你没有把程序中的变量放到SQL语句中,这样写只是把变量名字作为字符串放到了SQL语句中。

这里可以用 CString 类的函数 Format() ,把变量中的内容放入到SQL语句中。

举个例子:

// SQL 语句如下,注意这里的 user_id 为整形

SELECT user_name , user_age FROM usertable WHERE user_id = 100

// 程序如下
int nID = 100;
CString strSQL;
strSQL.Format( "SELECT user_name , user_age FROM usertable WHERE user_id = %d ",nID);

/////////////////////////////////////////////////

// SQL 语句如下,注意这里的 user_id 为字符型

SELECT user_name , user_age FROM usertable WHERE user_id = '100 '

// 程序如下
CString strID = "100 ";
CString strSQL;
strSQL.Format( "SELECT user_name , user_age FROM usertable WHERE user_id = '%s ' ",strID);

注意:%s 前后有一对单引号。SQL语句应该遵循数据库的语法标准。

读书人网 >VC/MFC

热点推荐