CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

调用DLL时出错,是什么原因呢。附代码

楼主mybcb(bcb)2004-12-02 22:37:26 在 .NET技术 / ASP.NET 提问

这是有asp.net的代码,我调用VC写的DLL,出现调用外部组件出错的现象,当我输入的密码正确时就出现错误,当用户名不正确或者密码不正确时,就不会出现这个错误了。请问是什么原因呢。                                                      
  int   i=0;  
  i=CheckLogin(User.Text,PassWord.Text   );  
  if(-2==i)  
  {  
  this.Label3.Text   ="发生来未知错误";  
  }  
  else   if(-1==i)  
  {  
  this.Label3.Text   ="用户帐号不存在";  
  }  
  else   if(0==i)  
  {  
  this.Label3.Text   ="用户密码不正确";  
  }  
  else   if(1==i)  
  {  
  this.Label3.Text   ="用户密码正确";  
  }  
   
   
  下面是在VC写的DLL代码  
  int   CCheckLogin::CheckLogin(CString   UserID,CString   PassWord)  
  {  
  if   (UserID=="")  
  {  
  return   -1;  
  }  
  if(PassWord.GetLength()!=8)  
  {  
  return   0;  
  }  
  ::CoInitialize(NULL);  
          HRESULT   hr;  
  int   i   =   0;  
  _bstr_t   ConnectionString="Provider=SQLOLEDB;SERVER=localhost;DATABASE=abc;UID=sa;PWD=1";//数据库连接串  
  _bstr_t   _user="sa";  
  _bstr_t   _password="1";  
  _ConnectionPtr   pconn;  
  _RecordsetPtr   prs;  
  _CommandPtr   pcmd;  
  hr   =   pconn.CreateInstance(__uuidof(Connection));  
  _bstr_t   txtSQL   ;  
  CString   tempPass;  
  pconn->Open(ConnectionString,_user,_password,0);  
   
  hr   =   prs.CreateInstance(__uuidof(Recordset));  
  prs->putref_ActiveConnection(pconn);  
  //prs->put_CacheSize(5000);    
  //prs->PutLockType(adLockReadOnly);  
  //prs->PutCursorType(adOpenStatic);  
  //prs->CursorLocation   =   adUseClient;  
  pcmd.CreateInstance(__uuidof(Command));  
  pcmd->putref_ActiveConnection(pconn);  
  pcmd->put_CommandType(adCmdText);  
   
   
  txtSQL=_bstr_t("select   *   from   t_user   where   Fuserid='"   +   (_bstr_t)UserID   +   "'");  
   
  pcmd->put_CommandText(txtSQL);  
   
  prs->Open((IDispatch   *)   pcmd,vtMissing,adOpenForwardOnly,adLockReadOnly,adCmdText);  
  if   (prs->adoEOF)  
  {  
  prs->Close();  
   
  pconn->Close();  
   
  return   -1;  
  }  
  else  
  {  
  tempPass=prs->GetCollect("FPass");  
   
  }  
  if(tempPass!=PassWord)  
  {  
  return   0;  
  }  
   
  txtSQL="insert   into   t_LoginMessage(FUserID,FDate,Fzt)   values('"   +   (_bstr_t)UserID   +   "',getdate(),1)";  
   
  pconn->BeginTrans();  
  try  
  {  
   
  pconn->Execute(txtSQL,NULL,1);  
   
  pconn->CommitTrans();  
  }  
  catch(_com_error   er)  
  {  
  pconn->RollbackTrans();  
  return   -2;  
  }  
   
  prs->Close();  
   
  pconn->Close();  
   
  return   1;  
  }  
   
  问题点数:100、回复次数:12Top

1 楼mybcb(bcb)回复于 2004-12-03 00:20:19 得分 0

怎么没有人回答啊。Top

2 楼fengforever(http://index.cnblogs.com)回复于 2004-12-03 08:06:14 得分 20

不懂呀,帮你顶一下Top

3 楼mybcb(bcb)回复于 2004-12-03 09:20:50 得分 0

UPTop

4 楼houlinghouling(秋水伊)回复于 2004-12-03 09:53:55 得分 10

你的写法有点奇怪,换一下试试,然后用断点跟踪看一看i具体得到的是多少  
  int   i=0;  
  i=CheckLogin(User.Text,PassWord.Text   );  
  if(i==-2)  
  {  
  this.Label3.Text   ="发生来未知错误";  
  }  
  else   if(i==-1)  
  {  
  this.Label3.Text   ="用户帐号不存在";  
  }  
  else   if(i==0)  
  {  
  this.Label3.Text   ="用户密码不正确";  
  }  
  else   if(i==1)  
  {  
  this.Label3.Text   ="用户密码正确";  
  }  
  Top

5 楼Jacob105(长风)回复于 2004-12-03 12:00:50 得分 10

upTop

6 楼wangyingbobj2911(不帅)回复于 2004-12-03 17:56:35 得分 10

最后再upTop

7 楼rickjelly2004(每逢佳节倍思亲-------------快乐生活)回复于 2004-12-03 18:05:14 得分 0

靠,你靠INSERT出错来判断呀  
   
  你就不能用SELECT拉呀Top

8 楼hdt(倦怠)回复于 2004-12-03 18:24:27 得分 50

发生什么错误Top

9 楼hdt(倦怠)回复于 2004-12-03 18:30:10 得分 0

CoUninitialize在哪?Top

10 楼hdt(倦怠)回复于 2004-12-03 18:30:50 得分 0

使用com做好使用  
  try{}catch()  
  Top

11 楼hdt(倦怠)回复于 2004-12-03 18:39:29 得分 0

try   {  
  ..  
  }  
  catch(   _com_error   err)   {  
  }  
    看看错误Top

12 楼mybcb(bcb)回复于 2004-12-04 15:55:16 得分 0

谢谢各位,我自己搞定了。  
  Top

相关问题

  • 调用DLL 出错,以知代码 ?
  • DLL调用出错
  • 调用.dll出错
  • 弱问:DLL调用出错
  • Dll调用出错?who can help me?
  • vc调用vc的DLL出错??
  • Dll的调用为什么会出错?
  • 调用DLL出错,请高手指教!
  • 动态调用DLL出错为何?
  • dll调用出错,附源码

关键词

  • 代码
  • 密码
  • 用户
  • hr
  • 调用
  • pconn
  • prs
  • 正确
  • bstr
  • 错误

得分解答快速导航

  • 帖主:mybcb
  • fengforever
  • houlinghouling
  • Jacob105
  • wangyingbobj2911
  • hdt

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo