日期:2014-05-17  浏览次数:20882 次

为什么明明修改了密码,但是再次运行还是可以用老密码登陆!
一个简单的登录程序遇到的问题。。。。
为什么我明明用程序修改了密码,也提示修改成功,但是再次运行还是可以用老密码登陆!我把release里面的数据库附加到sqlserver查看了也确实按我的已经修改了,我不明白怎么会仍然能够用老密码登陆成功啊?而新修改的密码却提示不能登录。。。怪了。。。


program.cs里的main:

string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\")) 
  {
  dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
  AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
  }

具体窗口用到连接数据库的代码:

string connstr = @"Data Source=YXJ\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Ceshi.mdf;Integrated Security=True;User Instance=true";

是不是会有缓存什么的?然后一直能访问我的老数据库,而新更改后的数据库无法访问啊?
还是说程序就没有访问我release里面的数据库,要是没访问,那我程序在哪儿读取的用户名和密码啊?

------解决方案--------------------
程序集里面有一个,当前运行目录里面有一个。
你看看是否是改的和使用的不是一个?
------解决方案--------------------
一般遇到这样的问题,先看数据库,密码是不是真的被改掉,没改掉那就是改密码的程序没有改成功;数据库改了,那就是程序读取密码这里有问题,会不会是缓存?按这样的思路一步步去排查咯...
------解决方案--------------------
1 密码改了没 到数据库看看
2.登陆debug一下 debug看一下等的执行的sql语句 到底密码是什么 sql语句赋值sql中执行看看
3.连接什么数据库的 更新密码是哪个数据 会不会搞混了
4.缓存
一般情况下 修改密码再登陆如果是同一个数据库 是不可能出现这种情况的