这个是一个登陆SQL Server的登陆按钮,登陆是没问题的,我现在想加两个东西很简单,请高手指点
第一:如果数据的用户名和密码是错误的,进行一下判断,提示用户密码错误,不知道那个else放在哪合适
第二:登陆完后显示主界面,我不想让登陆界面隐藏,能不能直接关闭掉        /************************************/
        /*登录按钮--填写名称和密码正确则登录*/
        /************************************/
        private void btnDL_Click(object sender, EventArgs e)
        {
            //*判断用户名输入是否为空,为空则弹出提示
            if (this.txtSqlName.Text == "")
            {
                MessageBox.Show("用户名不能为空!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }
            //*判断密码输入是否为空,为空则弹出提示
            if (txtSqlPwd.Text == "")
            {
                MessageBox.Show("密码不能为空!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }
            try
            {
                SqlConnection conn = new SqlConnection("Server=" + ccbSqlServerName.Text.Trim() + ";DataBase=master;uid=" + txtSqlName.Text.Trim() + ";pwd=" + txtSqlPwd.Text.Trim());
                conn.Open();
                if (conn.State == ConnectionState.Open)
                {
                    strUser = txtSqlName.Text.Trim();   //获取到的用户名赋给strUser字符串
                    strPwd = txtSqlPwd.Text.Trim();     //获取到的密码赋给strPwd字符串
                    strServerName = ccbSqlServerName.Text.Trim();    //获取到的服务器名称赋给strServerName字符串
                    conn.Close();
                    m_oConn = conn;
                    frmMain main = new frmMain();
                    main.Show();
                    //this.DialogResult = DialogResult.OK;                    //this.Hide();
                    main.strservername = strServerName;
                    main.struser = strUser;
                    main.strpwd = strPwd;
                }
                else if (conn.State == ConnectionState.Closed)
                {
                    conn.Close();
                }
            }
            catch
            {
                btnDL_Click(sender, e);
            }
        }

解决方案 »

  1.   

    关于第2点:需要在program.cs中修改,在登陆页修改是没希望的
      

  2.   

    提示账号密码错误的话直接放
    catch里加上
    {
        MessageBox.Show("账号密码错误或当前服务器不可用!");
        btnDL_Click(sender, e);
    }这样子可以吗?
      

  3.   

    using(SqlConnection conn = new SqlConnection("Server=" + ccbSqlServerName.Text.Trim() + ";DataBase=master;uid=" + txtSqlName.Text.Trim() + ";pwd=" + txtSqlPwd.Text.Trim()+"")
    {
    conn.Open();
    SqlCommmand cmd=new SqlCommand("",conn);
    SqlDataReader dr=cmd.Executereader();
    if(dr.Read())
    {//判断
    }
    }
      

  4.   


    写在Catch里是可以。。可是就变成无限循环了。。点击确定没完没了了。
      

  5.   


    我在你说的那个里面修改了,可是要循环出来两次,才可以登陆。。
                frmDL dl = new frmDL();
                Application.Run(dl);
                if (dl.DialogResult == DialogResult.OK)
                {
                    Application.Run(new frmMain());
                }
      

  6.   

    if(返回值=不存在的时候)
    {}else
    {
    }
      

  7.   

    关于第一个问题你可以这样解决:string sql="select userPwd userinfo where userName="+txtUserName;
    这样写sql语句,首先判断查询的记录是否为空,如果为空那么用户名就不存在,如果不为空密码错误那么就提示密码错误.
    object objName=DBHelper.GetExecuteScalar(sql)
    if(objName==null)
    {
       message.show("用户名不存在");
    }else
    {
       if(!objName.tostring().equals(this.txtUserPwd))
       {
          message.show("密码错误");
       }else
       {
          message.show("登录成功,跳转到主页");
       }
    }
    关于第二个问题:暂时没想到...
      

  8.   


    frmDL dl = new frmDL();
    dl.Show();if (dl.DialogResult == DialogResult.OK)
    {
      dl.Dispose();
      Application.Run(new frmMain());
    }
    即可