ADO 获取记录集时出现问题! 所读出的数据不对!
时间:2011-11-29
来源:互联网
C/C++ code
问题一:为什么获取学号的数据不是数据库中的数据, 本来应该是1的却是081101? 是什么原因?
问题二:vReaderID = m_pRecordset->GetCollect(_T("ReaderID"));可以try 不返回,而
vPassword = m_pRecordset->GetCollect(_T("Password"));却不可以?
数据库是SQL2005 环境是VS20008; 在下是个菜鸟,这里请各位大侠的帮帮忙! 谢谢^_^!
CString loginReaderID; CString loginPassword; _RecordsetPtr m_pRecordset; m_pRecordset.CreateInstance("ADODB.Recordset"); _variant_t vReaderID, vRName, vSex, vBrith, vGread, vPassword; //数据库查询执行 try { m_pRecordset->Open("SELECT * FROM TReader", _variant_t((IDispatch *)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText); while ( !m_pRecordset->_EOF) { // 取得学号 //vReaderID = m_pRecordset->GetCollect(_variant_t((long)0)); vReaderID = m_pRecordset->GetCollect(_T("ReaderID")); loginReaderID = ((LPCTSTR)(_bstr_t)vReaderID); MessageBox(loginReaderID); // 取得密码 vPassword = m_pRecordset->GetCollect(_variant_t((long)5)); //vPassword = m_pRecordset->GetCollect(_T("Password")); loginPassword = ((LPCTSTR)(_bstr_t)vPassword); MessageBox(loginPassword); if (g_LoginReaderID == loginReaderID && g_LoginPassword == loginPassword) { MessageBox(_T("登录成功!")); } else { MessageBox(_T("登录失败!")); } m_pRecordset->MoveNext(); } m_pRecordset->Close(); } catch (_com_error &e) { MessageBox(e.Description()); return ; }
问题一:为什么获取学号的数据不是数据库中的数据, 本来应该是1的却是081101? 是什么原因?
问题二:vReaderID = m_pRecordset->GetCollect(_T("ReaderID"));可以try 不返回,而
vPassword = m_pRecordset->GetCollect(_T("Password"));却不可以?
数据库是SQL2005 环境是VS20008; 在下是个菜鸟,这里请各位大侠的帮帮忙! 谢谢^_^!
作者: lyxsearch 发布时间: 2011-11-29
问题一:为什么获取学号的数据不是数据库中的数据, 本来应该是1的却是081101? 是什么原因?
查询语句"SELECT * FROM TReader"要增加上查询条件,不然返回的是该表TReader所有数据,所以取到的数据不一定是你要的,取得是最后一个,增加查询条件
select * from TReader where ReaderID = xxx
问题二:vReaderID = m_pRecordset->GetCollect(_T("ReaderID"));可以try 不返回,而
vPassword = m_pRecordset->GetCollect(_T("Password"));却不可以
没看明白.
查询语句"SELECT * FROM TReader"要增加上查询条件,不然返回的是该表TReader所有数据,所以取到的数据不一定是你要的,取得是最后一个,增加查询条件
select * from TReader where ReaderID = xxx
问题二:vReaderID = m_pRecordset->GetCollect(_T("ReaderID"));可以try 不返回,而
vPassword = m_pRecordset->GetCollect(_T("Password"));却不可以
没看明白.
作者: gameslq 发布时间: 2011-11-29
引用 1 楼 gameslq 的回复:
问题一:为什么获取学号的数据不是数据库中的数据, 本来应该是1的却是081101? 是什么原因?
查询语句"SELECT * FROM TReader"要增加上查询条件,不然返回的是该表TReader所有数据,所以取到的数据不一定是你要的,取得是最后一个,增加查询条件
select * from TReader where ReaderID = xxx
问题二:vReaderID =……
问题一:为什么获取学号的数据不是数据库中的数据, 本来应该是1的却是081101? 是什么原因?
查询语句"SELECT * FROM TReader"要增加上查询条件,不然返回的是该表TReader所有数据,所以取到的数据不一定是你要的,取得是最后一个,增加查询条件
select * from TReader where ReaderID = xxx
问题二:vReaderID =……
问题一: 不是可以用 m_pRecordset->GetCollect(_T("ReaderID"));吗?
问题二: 就是前一句不抛出异常,而后一句抛出异常! 怎么回事?
作者: lyxsearch 发布时间: 2011-11-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28