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

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();
}
}
...全文
16 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库
加入

3957

社区成员

VC/MFC 数据库
申请成为版主
帖子事件
创建了帖子
2004-05-04 07:22
社区公告
暂无公告