万分火急求助数字字符和字符串的转化问题,具体代码见下

zhuifeng1 2004-05-04 07:22:16
我在建立数据库时定义sno为文本形式,我想在我的程序中利用下面一段代码。可下面一段代码中的sno在数据库中定义为int 型。我将代码复制贴到我的程序里。出现了一些类型不想配的错误。具体错误是由我划波乱线的两处语句引起的。我不想将我的数据库中的sno 改为int型,请问怎样修改这段代码才能使它能在我的程序中重用。谢谢!
//功能:弹出修改记录窗口
void CStudentDlg::OnRadioMod()
{
// TODO: Add your control notification handler code here
m_database.Close();//本对话框断开与数据库的连接
CModStudentDlg dlg;

dlg.m_database.Open(_T("xuesheng"));
int i=m_ctrlstudent.GetSelectionMark();
CString strSQL;
int id=atoi(m_ctrlstudent.GetItemText(i,0));
~~~~~~~~~~~~~~~~~~~~~
CStudentSet m_recordset;
CDBVariant varValue;
if(i==-1)
{
MessageBox("请选择一条要修改的记录!","提示",MB_OK|MB_ICONINFORMATION);
}
else
{
int temp=0;
strSQL.Format("select * from student where sno=%s",id);
~~~~~~~~~~~~~~~~~~~~~~~~~~~
m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
MessageBox("ERROL1");
m_recordset.GetFieldValue(temp,varValue);
dlg.m_modsno1=varValue.m_pstring->GetBuffer(1);

m_recordset.GetFieldValue(1,varValue);
dlg.m_modsname1=varValue.m_pstring->GetBuffer(1);

m_recordset.GetFieldValue(2,varValue);
dlg.m_modssex1=varValue.m_pstring->GetBuffer(1);

m_recordset.GetFieldValue(3,varValue);
dlg.m_modsage1=varValue.m_iVal;

m_recordset.GetFieldValue(4,varValue);
dlg.m_modsdept1=varValue.m_pstring->GetBuffer(1);

//m_database.Close();//此处不能断开与数据库的连接
dlg.DoModal();
RefreshData();
}
}
...全文
53 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuifeng1 2004-05-06
  • 打赏
  • 举报
回复
谢谢大家,我找到问题所在了。我这样改后就对了。
CString id=(m_ctrlstudent.GetItemText(i,0));
Kudeet 2004-05-04
  • 打赏
  • 举报
回复
int id=atoi(m_ctrlstudent.GetItemText(i,0));
这里id不是int型吗?
zhuifeng1 2004-05-04
  • 打赏
  • 举报
回复
我将id 定义为CString id,这样出现了一个无效光标状态的错误提示。请问怎么回事?
Kudeet 2004-05-04
  • 打赏
  • 举报
回复
错了
先把id该为字符串
Kudeet 2004-05-04
  • 打赏
  • 举报
回复
strSQL.Format("select * from student where sno=%s",id); %s和你的类型不一样 改%d

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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