A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李朋霏 中级黑马   /  2012-7-19 20:17  /  6081 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (TextBox1.Text != null || TextBox2.Text != null)  //当两者都不为空时执行以下 否则显示用户名和密码不为空
            {
                if (TextBox1.Text == "admin") //当用户名为admin 时 执行密码登录,否则显示用户名错误
                {
                    if (TextBox2.Text == "0123456") //当密码为0123456时  登录成功!否则报错
                    {
                      Response.Write("登录成功!");
                    }
                    else
                    { Response.Write("密码错误!"); }
                }
                else
                { Response.Write("用户名错误!"); }

            }
            else
            { Response.Write("用户名和密码不能为空"); }}
         
上面的代码运行后 文本框不输入内容,不提示不能为空,而直接提示用户名输入错误,为什么呢?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

10 个回复

倒序浏览
if (TextBox1.Text != null || TextBox2.Text != null)  //当两者都不为空时执行以下 否则显示用户名和密码不为空
改成
if (TextBox1.Text != "" || TextBox2.Text != "")  //当两者都不为空时执行以下 否则显示用户名和密码不为空

就可以了!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
if (TextBox1.Text.Tostring().Trim() != "" && TextBox2.Text.Tostring().Trim() != "" )

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
你可以在aspx页面文本框后面用验证控件RequiredFieldValidator,这是专门为实现这类效果而设计的,后面的属性都是直接选择的,超简单,而且效率比你在.cs里写要简单的多。具体练习你可以打开vs2008或vs2010试试。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 赵鹏程 于 2012-7-19 23:06 编辑

主要原因是Textbox.text="null",并不是代表空字符串;NULL说白了是对指针的赋值,说明了指针为空;首先你这个语句就是有问题的。对于什么是""什么是NULL你应该有所了解。比如我定义一个变量 string mm="";此时mm==""返回的是true;而textBox1定义的过程中就已经为其分配空间,并存放了"",因此textBox1.Text==NULL返回flase,textBox1.Text.Trim()==“” 返回true。




评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
if (!string.IsNullOrEmpty(TextBox1.Text.Trim()) && !string.IsNullOrEmpty(TextBox2.Text.Trim()))

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
许庭洲 黑马帝 2012-7-20 13:31:07
7#
if (TextBox1.Text != null || TextBox2.Text != null)  //修改为if ( !(TextBox1.Text = " "||TextBox2.Text = " ")  )

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 李过 于 2012-7-26 14:39 编辑

把||改成&&呀. 还有,文本框为空,并不表示textBox.Text==null, 而是textBox.Text==string.Empty
所以可以这样写:
if(!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text))
如果空白符也算空的话,就用string.IsNullOrWhiteSpace

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
李根 中级黑马 2012-7-26 14:37:12
9#
if (TextBox1.Text != null || TextBox2.Text != null)  改成
if ( !(TextBox1.Text = " "||TextBox2.Text = " ")  )  就好了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
判断文本框字符串是不是为空可以用string.IsNullOrEmpty(TextBox1.Text)来判断

验证是否为空可以用javascript来验证;

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
  1. protected void Button1_Click(object sender, EventArgs e)
  2. {
  3. if (TextBox1.Text = "" || TextBox2.Text = "") //当两者都为空时弹出提示
  4. {
  5. Response.Write("用户名和密码不能为空");
  6. }
  7. else if (TextBox1.Text == "admin"||TextBox2.Text == "0123456")) //当用户名为admin 时,密码为0123456是 执行登录,否则显示用户名错误
  8. {
  9. Response.Write("登录成功!");
  10. }
  11. else
  12. {
  13. Response.Write("帐号或者密码错误!"); }
  14. }



复制代码
希望可以帮到你

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马