GetFieldValue 抛出异常,求助能人

mr_dream_mr 2013-04-18 03:57:30
strSQL.Format(_T("SELECT TRH_ID, F_ADDRESS, S_ADDRESS, TEMPERETURE, HIMITIRY, TIME FROM dbo.TRH_TAB WHERE (S_ADDRESS = '%s')"), m_strSAddr);
rs.Open(CRecordset::dynaset, strSQL);
short nFields = rs.GetODBCFieldCount();
while(!rs.IsEOF())
{
CString strSa;
int nF = 0;
// try {
rs.GetFieldValue(2, strSa);//<------------------------------异常
m_flexgrid_result.put_TextMatrix(flag, 1, strSa);
++flag;
rs.MoveNext();
// }catch( CException * pEx )
// {
// Simply show an error message to the user.
// pEx->ReportError();
// }
}

如上代码,在做数据查询的时候,执行到GetFieldValue时总是会抛出异常(如图),纠结了一天了,查看了MSDN,google过了,都没找到有效的解决方法,请求各位能够答疑解惑!!!非常感谢了!!!!
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mr_dream_mr 2013-04-18
  • 打赏
  • 举报
回复
引用 3 楼 hekelisy 的回复:
你这个不是sql的问题吧,应该是程序问题: rs.GetFieldValue(2, strSa); 这个是不是超出结果集边界了?
不会,表中有6个字段呢
hekelisy 2013-04-18
  • 打赏
  • 举报
回复
你这个不是sql的问题吧,应该是程序问题: rs.GetFieldValue(2, strSa); 这个是不是超出结果集边界了?
mr_dream_mr 2013-04-18
  • 打赏
  • 举报
回复
引用 1 楼 rockyljt 的回复:
楼主字段S_ADDRESS是什么类型的啊?有可能不是字符型的哦
char(10)
---涛声依旧--- 2013-04-18
  • 打赏
  • 举报
回复
楼主字段S_ADDRESS是什么类型的啊?有可能不是字符型的哦
void CMainDlg::OnAdd() { // TODO: Add your control notification handler code here //本对话框对应的数据库连接关闭 m_database.Close(); //新建一个CAddInfoDlg的对象 CAddInfoDlg dlg; //新对话框建立到数据库连接 dlg.m_database.Open(_T("addresslist")); //弹出新对话框 dlg.DoModal(); //新对话框关闭后,在原对话框中刷新数据显示 RefreshData(); } void CMainDlg::OnEdit() { // TODO: Add your control notification handler code here m_database.Close();//本对话框断开与数据库的连接 CModifyDlg dlg; dlg.m_database.Open(_T("addresslist"));//打开数据库 int i=m_ctrlperson.GetSelectionMark(); CString strSQL; int id=atoi(m_ctrlperson.GetItemText(i,0)); CPersonSet m_recordset; CDBVariant varValue; if(i==-1) { MessageBox("请选择一条要修改的记录!","提示",MB_OK|MB_ICONINFORMATION); } else { int temp=0; strSQL.Format("select * from person where ID=%d",id); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); m_recordset.GetFieldValue(temp,varValue); dlg.m_modid=varValue.m_lVal; m_recordset.GetFieldValue(1,varValue); dlg.m_modname=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(2,varValue); dlg.m_modsex=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(3,varValue); dlg.m_modrelation=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(4,varValue); dlg.m_modtelephone=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(5,varValue); dlg.m_modhandphone=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(6,varValue); dlg.m_modaddress=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(7,varValue); dlg.m_modworkplace=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(8,varValue); dlg.m_modemail=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(9,varValue); dlg.m_modoicq=varValue.m_pstring->GetBuffer(1); //m_database.Close();//此处不能断开与数据库的连接 dlg.DoModal(); RefreshData(); } }

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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