void CDlg_login::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
try
{
m_Pconn.CreateInstance(__uuidof(Connection));
CString SQL=_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=stu.mdb");
m_Pconn->Open((_bstr_t)SQL,"","",adModeUnknown);
}
catch(_com_error e)
{
MessageBox(_T("数据库连接失败"));
}
try
{
m_Precord.CreateInstance(__uuidof(Recordset));
CString sql1("select * from login where login_name=\"");
CString SQL= sql1 + m_login_name + "\" and login_pwd=\"" + m_login_pwd + "\"";
m_Precord->Open((_variant_t)SQL,_variant_t(m_Pconn,true),adOpenStatic,adLockOptimistic,adCmdText);
int n = m_Precord->GetRecordCount();
if(n)
{
CCommandLineInfo cmdInfo;
AfxGetApp()->ParseCommandLine(cmdInfo);
if (!AfxGetApp()->ProcessShellCommand(cmdInfo))
return;
AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOW);
AfxGetApp()->m_pMainWnd->UpdateWindow();
CDialog::OnOK();
}
else
{
MessageBox(_T("密码错误"));
}
m_Precord->Close ();
m_Pconn->Close ();
m_Precord=NULL;
m_Pconn=NULL;
}
catch(_com_error e)
{
MessageBox(_T("连接有误"));
}
UpdateData(FALSE);
}
4 个解决方案
#1
先构造一个对话框资源,在为这个资源生成一个类,然后在调用这个对话框的显示函数
void CDialogDlg::OnOK()
{
// TODO: Add extra validation here
CMyDialog my;
my.DoModal( );
CDialog::OnOK();
}
#2
新建的类应该去什么名字,用什么基类
#3
很有启发,谢谢
#4
这个OnOk要放到前面,不然DoModal消息循环,不关闭就执行不了OnOk
#1
先构造一个对话框资源,在为这个资源生成一个类,然后在调用这个对话框的显示函数
void CDialogDlg::OnOK()
{
// TODO: Add extra validation here
CMyDialog my;
my.DoModal( );
CDialog::OnOK();
}
#2
新建的类应该去什么名字,用什么基类
#3
很有启发,谢谢
#4
这个OnOk要放到前面,不然DoModal消息循环,不关闭就执行不了OnOk