| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 919 人关注过本帖
标题:这个问题老解决不到
只看楼主 加入收藏
ryancai
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-2-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
这个问题老解决不到
        private void button1_Click(object sender, EventArgs e)
        {
            SqlCommand cmd = new SqlCommand("select * from admin where adminuser='" + textuser.Text + "'", conn);
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            if (sdr.Read())//选择语句
            {
                if (sdr["adminpwd"].ToString() == textpwd.Text)
                {

                    FromMain main = new FromMain();
                    main.Show();
                    this.Hide();
                }
                else
                {
                    MessageBox.Show("密码错误!");
                }
            }
            else
            {
                MessageBox.Show("无此用户!");
            }
            conn.Close();
        }




输入帐号正确   输入正确、错误密码 一定会出现  MessageBox.Show("密码错误!");   这个框框的


何解呢?帮忙看下~~谢谢啦
搜索更多相关主题的帖子: private admin where 
2010-02-17 15:49
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
收藏
得分:5 
理论上不应该啊

QQ:81704464
2010-02-17 16:58
ryancai
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-2-17
收藏
得分:0 
  我错了  

if (sdr["adminpwd"].ToString() == textpwd.Text)

这一句如果我想换成读取数据表

数据库是SQL2005

我意思是 我要读取  admin表的  adminpwd这一列数据去跟textpwd.Text比较  该怎么改?


 谢谢楼上了~~
2010-02-18 01:32
saitor
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:5
帖 子:373
专家分:1520
注 册:2009-5-18
收藏
得分:5 
select * from admin where adminuser='" + textuser.Text + "'"
这条查出来有几条记录?
2010-02-18 15:50
happy886
Rank: 3Rank: 3
来 自:河南
等 级:论坛游侠
威 望:3
帖 子:130
专家分:120
注 册:2009-3-21
收藏
得分:5 

select * from admin where adminuser='" + textuser.Text + "'"
我想它只能挑出一条记录,如果多条记录时可能不符合实际情况!

可以这样试一下!
有可能是这里错了!
sdr["adminpwd"].ToString() .Trim()==textpwd.Text

happy  C#
2010-02-19 10:20
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:5 
这种错误用肉眼一般是很难看出来的,最好的解决方法是:利用vs的调试功能设置断点,一步一步的运行,一边运行一边查看得到的数据与自己想要得到的数据是否一样,然后进行适当的修改才能真正的解决问题。你最好是试试看,具体关于断点怎么设置程序怎么才能一步一步的运行,你最好是到网站上搜索一下,一定要学会这种方法,在以后的编程当中会经常用到的。希望对你有帮助!

♂ 死后定当长眠,生前何须久睡。♀
2010-02-24 20:05
cctvkmn
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2008-11-22
收藏
得分:0 
测试了一下。此代码完全正确。。。
 private void button1_Click(object sender, EventArgs e)
        {
string ConnString = @"Data Source=KMN-1E6BD37CF76\SQLEXPRESS;Initial Catalog=LoginUser;Integrated Security=True";
            string sql = "select * from UserLogin where Users='"+textBox1.Text+"'";
            SqlConnection conn = new SqlConnection(ConnString);
            conn.Open();
            SqlCommand comm = new SqlCommand(sql, conn);
            SqlDataReader re = comm.ExecuteReader();
            if (re.Read())
            {
                if (re["Password"].ToString() == textBox2.Text)
                {
                    MessageBox.Show("登陆成功!");
                }
                else
                {
                    MessageBox.Show("密码错误!");
                }
            }
            else {
                MessageBox.Show("用户名或密码错误!");
            }
            conn.Close();
        
2010-02-26 20:03
cctvkmn
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2008-11-22
收藏
得分:0 
还真看不出问题。是不是LZ弄错什么环节了?
2010-02-26 20:09
YOUDIANSHUI
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:108
注 册:2008-12-10
收藏
得分:0 
我觉得是这样,如果你查出的是多条记录,sr。read()会遍历每一行,如果第一行的那一列不匹配你的要求就会出现你要显示的“密码错误”最好加上sdr["adminpwd"].ToString() .Trim()==textpwd.Text 更稳妥
2010-03-02 09:04
快速回复:这个问题老解决不到
数据加载中...
 
   



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

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