| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4143 人关注过本帖
标题:登录界面的代码放在哪里啊
取消只看楼主 加入收藏
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
 问题点数:0 回复次数:11 
登录界面的代码放在哪里啊
我用ado对数据库操作,初始化放到了doc中,现在想做个登录界面,可是我得代码放到哪里啊?ado没有初始化结束,我无法对数据库操作阿。有什么办法么,另外登录有权限级别,不是一个用户,用文件不好读取阿。
搜索更多相关主题的帖子: 界面 代码 登录 
2007-05-11 13:53
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
得分:0 
对!输入密码显示截面
2007-05-11 18:18
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
得分:0 
我用的sdi啊,主要是无法读去数据
2007-05-11 18:40
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
得分:0 
可是防在frame中的话,取消时,会有 "建立空文档失败" 谈出来
2007-05-12 08:23
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
得分:0 
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
....
CLogin LoginDlg;
int result;
result=LoginDlg.DoModal();

return 0;
}
现在想放到这里了,但是还不行
这是CLogin里的代码:
BOOL CLogin::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here
CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();
CChickensDoc* pDoc=(CChickensDoc*)pMain->GetActiveDocument();

pDoc->m_rec->Open("select * from OPERATOR",pDoc->m_con.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(!pDoc->m_rec->BOF)
{
_variant_t var;
CString oper;
pDoc->m_rec->MoveFirst();
while(!pDoc->m_rec->SSTEOF)
{
var=pDoc->m_rec->GetCollect("checkperson");
if(var.vt!=NULL)
{
oper=(LPCSTR)_bstr_t(var);
m_Name.AddString(oper);
}
}
}
else
{
AfxMessageBox("无数据");
return FALSE;
}

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
只要用到上面的代码就不能执行,说信息丢失

2007-05-12 10:06
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
得分:0 

不会啊,我不会弄消息,因为补知道消息是怎么回事.我现在把代码都放到
CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中了,可还是不行,再这里怎么获得doc指针啊
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
CLogin LoginDlg;
int result;
int ok=0;
CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();
CChickensDoc* pDoc=(CChickensDoc*)pMain->GetActiveDocument();
do{
result=LoginDlg.DoModal();
CString sql;
if(result==IDOK)
{
//登录
sql="select * from OPERATOR where checkperson='"+LoginDlg.m_Name+"'";
BSTR strsql=sql.AllocSysString();
if(pDoc->m_rec->State)
{
pDoc->m_rec->Close();
}
pDoc->m_rec->Open(strsql,pDoc->m_con.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(!pDoc->m_rec->BOF)
{
_variant_t var;
CString pass;
pDoc->m_rec->MoveFirst();
while(!pDoc->m_rec->SSTEOF)
{
var=pDoc->m_rec->GetCollect("password");
if(var.vt!=NULL)
{
pass=(LPCSTR)_bstr_t(var);
}
if(strcmp(pass,LoginDlg.m_Pass)==0)
{
ok=true;
break;
}
pDoc->m_rec->MoveNext();
}
}
}
else
{
//取消
return -1;
}
}while(ok<4);

return 0;
}
可是还事信息丢失,我跟踪执行,是先执行的doc,再执行的frame,(感谢7楼)可怎么还是不行啊

[此贴子已经被作者于2007-5-12 12:18:34编辑过]

2007-05-12 12:17
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
得分:0 

那我怎么在密码补正确,或取消时退出应用程序啊

2007-05-12 13:23
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
得分:0 
另外我试了以下,好象是个方法,不过就是上面的问题,还有我关闭应用程序时,这个登陆窗口怎么还会出现啊,
高手帮帮我啊

[此贴子已经被作者于2007-5-12 13:51:16编辑过]

2007-05-12 13:25
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
得分:0 

余来,帮帮我啊

2007-05-12 14:29
赤冰
Rank: 1
等 级:新手上路
帖 子:397
专家分:0
注 册:2007-1-22
收藏
得分:0 
dlg.Setpassword(passworD); //将密码传给登陆代码框
dlg.SetId(ID); //将帐号.....

那在对话框里还要添加两个设置函数吧,可是你传给对话框的密码和id从那来,是固定的么,不是吧,我需要的不是.这样我还要读取数据库,呵我现在的问题就是无法读取数据啊.我现在只好在对话框里重新声明ado指针了,也只能这么将就了.还是感谢你辛苦了.

还想问一个数据库的问题,数据库中什么类型是可变根据字符串的长度,我的数据库密码类型是varchar(10),可是我取出来之后,不是十位密码,他后面还有空格,我不好比较
2007-05-12 18:06
快速回复:登录界面的代码放在哪里啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039837 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved