VC数据库ODBC编程(下一条按钮代码)MoveNext
我用SQL Server 创建了一个数据库 hospital
用VC++添加数据源"VC++ Hospital"
ODBC
创建一个对话框,显示表“duty”数据,自己添加代码如下:
BOOL CDutyDialogClass::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CDatabase db;
db.Open("VC++ Hospital",FALSE,FALSE,_T("ODBC;"),FALSE);
CRecordset dbset;
dbset.m_pDatabase=&db;
CString strsql;
strsql="select * from duty";
dbset.Open(CRecordset::dynamic,strsql);
dbset.GetFieldValue("date_time",m_datetime);
dbset.GetFieldValue("doc_no",m_dno);
dbset.GetFieldValue("nur_no",m_nno);
dbset.GetFieldValue("pat_no",m_pno);
UpdateData(FALSE);
dbset.Close();
db.Close();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
数据框中显示了四条数据。
现在 我添加“下一条”按钮
编码如下:
void CDutyDialogClass::OnButtonMovenext()
{
// TODO: Add your control notification handler code here
int i=0;
CDatabase db;
db.Open("VC++ Hospital",FALSE,FALSE,_T("ODBC;"),FALSE);
CRecordset dbset;
dbset.m_pDatabase=&db;
CString strsql;
strsql="select * from duty";
dbset.Open(CRecordset::dynamic,strsql);
while (!dbset.IsEOF()&&i==0)
{
dbset.MoveNext();
dbset.GetFieldValue("date_time",m_datetime);
dbset.GetFieldValue("doc_no",m_dno);
dbset.GetFieldValue("nur_no",m_nno);
dbset.GetFieldValue("pat_no",m_pno);
UpdateData(FALSE);
i=1;
}
while(dbset.IsEOF())
{
MessageBox("已是最后一条记录,回滚到第一条!");
dbset.MoveFirst();
dbset.GetFieldValue("date_time",m_datetime);
dbset.GetFieldValue("doc_no",m_dno);
dbset.GetFieldValue("nur_no",m_nno);
dbset.GetFieldValue("pat_no",m_pno);
UpdateData(FALSE);
}
}
接果 只显示到第二条记录 在点击“下一条”按钮就不滚动了
请求: 第一,上面代码错误处
第二,怎么改正 或者 大家直接给我一个新的方法(注:我是菜鸟 好菜 还有我们老师规定只能用代码连接数据库 不可直接用Microsoft Visual c++中工具直接连 所以 书上的有m_pSet的代码都用不了了 )
拜托 拜托 拜托 不管我给多少分 提示无权 抱歉