请问怎么在combobox下拉列表中显示用户名啊,求大神帮忙,急急急!!!
这里是登录对话框类
// CLoginDlg dialog
CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLoginDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLoginDlg)
m_strUser = _T("");
m_strPass = _T("");
//}}AFX_DATA_INIT
}
void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLoginDlg)
DDX_Control(pDX, IDC_EDIT1, m_ctrPass);
DDX_Control(pDX, IDC_COMBO1, m_ctrUser);
DDX_CBString(pDX, IDC_COMBO1, m_strUser);
DDX_Text(pDX, IDC_EDIT1, m_strPass);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
//{{AFX_MSG_MAP(CLoginDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLoginDlg message handlers
void CLoginDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);//将对话框数据传入变量
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("SELECT * FROM admins",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);//打开表
if(m_strUser=="")
{
MessageBox("请输入用户名!","用户登录");
m_ctrUser.SetFocus();
return;
}
CString str;
str="adminID='"+m_strUser+"'";
m_pRecordset->Filter=(_variant_t)str;
//AfxMessageBox( "请先选中一条记录 ");
m_pRecordset->Requery(adLockReadOnly);//查找系统用户记录
if(m_pRecordset->BOF&&m_pRecordset->adoEOF)
{
//无用户记录,登录用户名错误
MessageBox("用户名错误","用户登录");
m_ctrUser.SetFocus();
return;
}
else
{
//检查口令是否正确
if((m_pRecordset->GetCollect("adminPassword").bstrVal)!=m_strPass)
{
MessageBox("口令错误","用户登录");
m_ctrPass.SetFocus();
return;
}
else
{
m_pRecordset->Close();
}
}
CDialog::OnOK();
}
void CLoginDlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
BOOL CLoginDlg::OnInitDialog()
{
CDialog::OnInitDialog();
while(!m_pRecordset->adoEOF)
{
m_ctrUser.AddString(m_pRecordset->GetCollect("adminID"));
m_pRecordset->MoveNext();
} // TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
下面这段主程序中初始化和连接Oracle数据库,
// CYanxinApp initialization
BOOL CYanxinApp::InitInstance()
{
if(!AfxOleInit())
{
AfxMessageBox("初始化COM库失败!");
return FALSE;
}
//此处添加初始化数据库连接
m_pConnection.CreateInstance("ADODB.Connection");
//连接数据库
try
{
m_pConnection->ConnectionTimeout=8;
//连接oracle数据库
m_pConnection->Open("Provider=OraOLEDB.Oracle.1;Database=orcl;User Id=dbuser01;Password=123;Persist Security Info=True","","",adModeUnknown);
}
catch(_com_error e)//捕捉异常
{
AfxMessageBox("数据库连接失败!");
return FALSE;
}
AfxEnableControlContainer();
不要红色那段没问题,我想在登陆界面的下拉框中显示用户名,就加了红色那段,可是出错了,不知道怎么改,求大神指点!!!