以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  大家来帮帮忙啊,简单的用户登陆功能,实在没辙了  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=42861)


--  作者:fangel2000
--  发布时间:1/28/2007 8:52:00 PM

--  大家来帮帮忙啊,简单的用户登陆功能,实在没辙了
已知对话框类是CTestDlg
我在CTestDlg::OnInitDialog()中加入下列代码:
           m_pConnection.CreateInstance(__uuidof(Connection));
 try
 {
  // 创建Connection对象
  m_pConnection.CreateInstance("ADODB.Connection");
  // 设置连接字符串,必须是BSTR型或者_bstr_t类型
  CString strConn;
        strConn = "Provider=SQLOLEDB; Server=FANG; Database=fangel; uid=sa; pwd="";";
     _variant_t varConn(strConn);
     _bstr_t strConnect(varConn);
  m_pConnection->Open(strConnect,"","",-1);
 }
 catch(_com_error e)
 {
  AfxMessageBox(e.Description());
 }

 
 m_pRecordset.CreateInstance(__uuidof(Recordset));
 try
 {
  m_pRecordset->Open("SELECT * FROM Users", m_pConnection.GetInterfacePtr(),
       adOpenDynamic, adLockOptimistic, adCmdText);
 }
 catch(_com_error *e)
 {
  AfxMessageBox(e->ErrorMessage());
 }

主界面是填写用户名和登陆的两个编辑框,我在确定按钮上的代码如下:
void CMy19Dlg::OnButton1()
{
 // TODO: Add your control notification handler code here
 _variant_t var;
 CString strName,strPwd;
 try
 {
  if(!m_pRecordset->BOF)
   m_pRecordset->MoveFirst();
  else
  {
   AfxMessageBox("表内数据为空");
   return;
  }

  // 读入库中各字段并加入列表框中
  while(!m_pRecordset->adoEOF)
  {
   var = m_pRecordset->GetCollect("UserName");
   if(var.vt != VT_NULL)
    strName = (LPCSTR)_bstr_t(var);
   var = m_pRecordset->GetCollect("Pwd");
   if(var.vt != VT_NULL)
    strPwd = (LPCSTR)_bstr_t(var);

   if((m_username == strName) && (m_userpwd == strPwd))
   {
    AfxMessageBox("用户登陆成功!");
   }
   else
   {
    AfxMessageBox("Error!请重新输入!");
   }

   m_pRecordset->MoveNext();
  }

 }
 catch(_com_error *e)
 {
  AfxMessageBox(e->ErrorMessage());
 }     
}
大家能帮我看看代码错在什么地方么?我实在没辙了

现在知道红色的部分有问题,它使一条一条的扫描数据库的。应该怎么样正确修改呢?


--  作者:卷积内核
--  发布时间:1/29/2007 8:41:00 AM

--  
数据库密码索引时不用一条条扫描吧,以用户名为索引直接调用就可以了。
--  作者:fangel2000
--  发布时间:1/29/2007 9:27:00 AM

--  
呵呵,这个问题昨天晚上解决了,还是一条一条扫描的
以用户名为索引怎么实现啊?刚学,还在探索中呢
--  作者:fangel2000
--  发布时间:1/29/2007 9:37:00 AM

--  
谁能告诉我以用户名为索引怎么实现啊?谢谢谢谢
--  作者:卷积内核
--  发布时间:1/29/2007 4:33:00 PM

--  
设计数据库的时候,把你要设的索引项设为索引就可以了啊,写程序过程中不用编码的。首先熟悉了数据库再写数据库程序会更容易的。
--  作者:fangel2000
--  发布时间:1/29/2007 6:39:00 PM

--  
哦,懂了。呵呵
有的东西都知道,就是运用的时候没有想到
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms