无效的描述符索引

solicice 2009-11-30 01:20:54
我用vc++6.0开发一个电话本应用程序,编译都通过了,在执行时出现“无效的描述符索引”,然后我设断点更踪了一下,在更踪过程中可以看到在记录集中都有了读出的数据,可就是不能再编辑框中出现,我数据读取的顺序和数据库的存储顺序是相同的。希望高手能给予指点,谢谢了!
void CPhoneBookDlg::RefreshData()
{

CString strSql;
CString temp;

if(m_database.IsOpen())
{
m_database.Open(_T("PhoneBook"));
m_friendsset.m_pDatabase=&m_database;
}

strSql.Format("select * from friends");

m_friendsset.Open(CRecordset::forwardOnly,strSql);

m_friendsset.GetFieldValue("friends_id", temp );

m_edit_no.SetWindowText(temp);


m_friendsset.GetFieldValue("friends_name",temp);
m_edit_name.SetWindowText(temp);


m_friendsset.GetFieldValue("friends_age",temp);
m_edit_age.SetWindowText(temp);

m_friendsset.GetFieldValue("friends_sex",temp);
if(temp=="男"){
((CButton *)GetDlgItem(IDC_RADIO_MAN))->SetCheck(BST_CHECKED);
((CButton *)GetDlgItem(IDC_RADIO_WOMAN))->SetCheck(BST_UNCHECKED);
}
else {
((CButton *)GetDlgItem(IDC_RADIO_MAN))->SetCheck(BST_UNCHECKED);
((CButton *)GetDlgItem(IDC_RADIO_WOMAN))->SetCheck(BST_CHECKED);
}

m_friendsset.GetFieldValue("friends_phone",temp);
m_edit_phone.SetWindowText(temp);

m_friendsset.GetFieldValue("friends_mobile",temp);
m_edit_mobile.SetWindowText(temp);

m_friendsset.GetFieldValue("friends_qq",temp);
m_edit_qq.SetWindowText(temp);


m_friendsset.GetFieldValue("friends_email",temp);
m_edit_email.SetWindowText(temp);

m_friendsset.GetFieldValue("friends_address",temp);
m_edit_address.SetWindowText(temp);
UpdateData(false);
}

PS:我是用ODBC连接sql sverver 2000
...全文
51 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengde007 2009-11-30
  • 打赏
  • 举报
回复
void GetFieldValue(
LPCTSTR lpszName,
CDBVariant& varValue,
short nFieldType = DEFAULT_FIELD_TYPE
);
void GetFieldValue(
short nIndex,
CDBVariant& varValue,
short nFieldType = DEFAULT_FIELD_TYPE
);
void GetFieldValue(
short nIndex,
CStringA& strValue
);
void GetFieldValue(
short nIndex,
CStringW& strValue
);
好像都没有你那样的函数吧;仔细看看
spirit_sheng 2009-11-30
  • 打赏
  • 举报
回复
在对sqlserver数据库进行数据读取的时候,
必须按照表中列名的顺序读取,不然就会出现这个错误错误.

如果数据库定义顺序:
name
password
power
取值时一定要按下面顺序来取:
rs.GetFieldValue("name",...)
rs.GetFieldValue("password",...)
rs.GetFieldValue("power",...)

65,194

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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