MFC中使用数据源的问题
CStringuser,password;intpower;CDatabasem_db;intt=m_db.Open(_T("学生信息"));CStrings;s.For...
CString user, password;
int power;
CDatabase m_db;
int t=m_db.Open(_T("学生信息"));
CString s;
s.Format("%d",t);
MessageBox(s,"");
CPswdSet m_Set;
m_Set.m_pDatabase=&m_db;
CStuInforSet m_stuset;
m_stuset.m_pDatabase=&m_db;
m_Set.Open(CRecordset::dynaset,"select * from manage");
//CString s;
//s.Format("%d",t);
//MessageBox(s,"");
// m_Set.Close();
while(!m_Set.IsEOF())
{
user = m_Set.m_num ;
password = m_Set.m_password;
power=m_Set.m_power;
user.TrimRight();
password.TrimRight();
if(( user==m_User_Num)&&(m_User_Password==password))
{
CDialog::OnOK();
if(power==0)
{
CSuperDlg dlg;
dlg.DoModal();
}
else
{
COrdinaryDlg dlg;
dlg.DoModal();
}
m_Set.Close();
break;
}
else
{
m_Set.MoveNext();
}
}
m_Set.Close();
m_stuset.Open(CRecordset::dynaset,"select studentnum ,password from studentinformation");
while(!m_stuset.IsEOF())
{
user=m_stuset.m_num;
password=m_stuset.m_password;
user.TrimRight();
password.TrimRight();
if((user==m_User_Num)&&(password==m_User_Password))
{
CDialog::OnOK();
CStudentDlg dlg;
dlg.DoModal();
//flag=3;
m_stuset.Close();
break;
}
else
{
m_stuset.MoveNext();
}
}
m_db.Close();
这个程序段为什么第二个WHILE不能读进来数据呢? 展开
int power;
CDatabase m_db;
int t=m_db.Open(_T("学生信息"));
CString s;
s.Format("%d",t);
MessageBox(s,"");
CPswdSet m_Set;
m_Set.m_pDatabase=&m_db;
CStuInforSet m_stuset;
m_stuset.m_pDatabase=&m_db;
m_Set.Open(CRecordset::dynaset,"select * from manage");
//CString s;
//s.Format("%d",t);
//MessageBox(s,"");
// m_Set.Close();
while(!m_Set.IsEOF())
{
user = m_Set.m_num ;
password = m_Set.m_password;
power=m_Set.m_power;
user.TrimRight();
password.TrimRight();
if(( user==m_User_Num)&&(m_User_Password==password))
{
CDialog::OnOK();
if(power==0)
{
CSuperDlg dlg;
dlg.DoModal();
}
else
{
COrdinaryDlg dlg;
dlg.DoModal();
}
m_Set.Close();
break;
}
else
{
m_Set.MoveNext();
}
}
m_Set.Close();
m_stuset.Open(CRecordset::dynaset,"select studentnum ,password from studentinformation");
while(!m_stuset.IsEOF())
{
user=m_stuset.m_num;
password=m_stuset.m_password;
user.TrimRight();
password.TrimRight();
if((user==m_User_Num)&&(password==m_User_Password))
{
CDialog::OnOK();
CStudentDlg dlg;
dlg.DoModal();
//flag=3;
m_stuset.Close();
break;
}
else
{
m_stuset.MoveNext();
}
}
m_db.Close();
这个程序段为什么第二个WHILE不能读进来数据呢? 展开
1个回答
展开全部
你这些代码都在一起吗,就是在一个函数里面吗?
要是的话,前面哪个while里面或许弹出CSuperDlg dlg; dlg.DoModal(); 这个对话框,或许弹出COrdinaryDlg dlg; dlg.DoModal(); 这个对话框,这两个都是模态对话框,只有关闭了他们之后,程序才会继续往下运行。程序往下运行后首先运行m_Set.Close(); 再break;跳出while循环,又执行m_Set.Close(); ,同一个记录执行两次Close可能会出错吧,
或许用户名和密码都错了,那么CSuperDlg dlg; dlg.DoModal()和COrdinaryDlg dlg; dlg.DoModal(); 都不会执行。
假使没出错,m_stuset开始查询,往下程序运行。
不知道这(第二个WHILE不能读进来数据呢) 是什么意思。只能帮忙帮到这里了,没有更多的信息
要是的话,前面哪个while里面或许弹出CSuperDlg dlg; dlg.DoModal(); 这个对话框,或许弹出COrdinaryDlg dlg; dlg.DoModal(); 这个对话框,这两个都是模态对话框,只有关闭了他们之后,程序才会继续往下运行。程序往下运行后首先运行m_Set.Close(); 再break;跳出while循环,又执行m_Set.Close(); ,同一个记录执行两次Close可能会出错吧,
或许用户名和密码都错了,那么CSuperDlg dlg; dlg.DoModal()和COrdinaryDlg dlg; dlg.DoModal(); 都不会执行。
假使没出错,m_stuset开始查询,往下程序运行。
不知道这(第二个WHILE不能读进来数据呢) 是什么意思。只能帮忙帮到这里了,没有更多的信息
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询