我做了一个用户登录的程序,用ODBC数据库做的,菜单中加一个用户登录的菜单,用这个菜单调用用户登录对话框,用户登录对话框中包括用户账号和密码两项,连接编译都没错,也能出来对话框,输入用户账号和密码后点击OK时却出现错误,下面是我在确定按钮中加的代码。void chxdl::OnOK() 
{
// TODO: Add extra validation here
    UpdateData(true);
yhbiao m_yhbiao;
try
{
if(m_yhbiao.IsOpen())
{
m_yhbiao.Close();
m_yhbiao.m_strFilter.Format("userID='%s' and userpwd='%s'",m_yhzhh,m_yhmm);
m_yhbiao.Open(yhbiao::snapshot,NULL,yhbiao::none);
if(m_yhbiao.IsEOF)
{
m_yhbiao.Close();
AfxMessageBox("密码错误,请重试!");
return;
}
}
else
{
m_yhbiao.Close();
AfxMessageBox("密码正确,登入成功!");
}
}
catch(CDBException *e)
{
e->ReportError();
return;
}

CDialog::OnOK();
}
请高手帮帮忙吧,顺便告诉我对话框中密码项如何实现用*代替。

解决方案 »

  1.   

    1.错误在哪里?
    2.setpasswordchar
      

  2.   

    对话框中密码项如何实现用*代替。
    对着密码框的EditBox点右键,在Style中将Password钩上,就是*号了。出错的提示是什么?是在try中出错,还是运行的程序出错?
      

  3.   

    运行也没错就是点OK按钮时报错下面就是报错内容---------------------------
    Microsoft Visual C++ Debug Library
    ---------------------------
    Debug Assertion Failed!Program: ...ND SETTINGS\ADMINISTRATOR\桌面\新建文件夹\xtgl\Debug\xtgl.exe
    File: dbcore.cpp
    Line: 1134For information on how your program can cause an assertion
    failure, see the Visual C++ documentation on asserts.(Press Retry to debug the application)
    ---------------------------
    终止(A)   重试(R)   忽略(I)   
    ---------------------------
      

  4.   

    看Call Stack,往回找,一直找到你自己的代码中,看看是哪?
      

  5.   

    m_yhzhh,m_yhmm
    这两个定义的是字符串型(CString)的吗?我遇到很多次编译OK,但是运行出错都是变量类型弄错了.
      

  6.   

    是RecordSet Open的时候出的问题?
      

  7.   

    RecordSet Open的时候出的什么问题呢,能具体点吗,我要怎么改,谢谢。
      

  8.   

    我没办法给你再具体了,因为你没有提供更详细的信息,而我这里也无法重现你的错误。
    根据你贴的错误信息,我查找了dbcore.cpp,貌似是在CRecordSet的Open函数。
    但是,vc9的dbcore.cpp和楼主版本貌似不一致。
      

  9.   

    access数据库放置在工程文件下......会调试吗?单步调试下,看具体是哪段代码报错误,具体使用方法如下:1、在你的void chxdl::OnOK()代码体里面的最上端设置一个断点,用键盘上的F9设置,你会看见一个棕色的小圆点,设置成功
    2、再点键盘上的F5,程序进入调试状态
    3、再点F10进行单步跟踪代码,肯定找得到哪段代码写法有问题......
    4、在你的open()函数里面再设置断点,跟进去......