如何检查在文本字段中输入的字符串是否更高

时间:2016-02-11 10:20:14

标签: c#

检查用户登录系统时输入的字符串。 在我的代码中发生的是,数据库库中的密码保存为小写但是当我使用大写登录时,它可以登录系统

public void login()
{
    try
    {


        if (USERNAME != "" && PASS != "")
        {
            string login = "SELECT * from rfidprototype.account where username ='" + USERNAME + "' and password = '" + PASS + "';";
            MySqlCommand cmdDB = new MySqlCommand(login, SQLconn);
            MySqlDataReader DRead;
            DRead = cmdDB.ExecuteReader();
            if (DRead.Read())
            {
                if (USERNAME == "admin")
                {
                    MenuHere menu = new MenuHere();
                    menu.Show();
                    SQLconn.Close();
                }
                else
                {
                    MenuHere menu1 = new MenuHere();
                    menu1.Show();
                    menu1.ManageTile.Enabled = false;
                    SQLconn.Close();
                }

            }
            else
            {
                //MessageBox.Show("Incorrect Username or Password!");
                MessageBox.Show("Incorrect Username or Password", "Laptop Ownership Identifier System", MessageBoxButtons.OK, MessageBoxIcon.Error);
                DiriLogin form = new DiriLogin();
                form.ShowDialog();
            }
        }
        else
        {
            // MessageBox.Show("Incorrect Username or Password!");
            MessageBox.Show("Please input username or password", "Laptop Ownership Identifier System", MessageBoxButtons.OK, MessageBoxIcon.Error);
            DiriLogin form = new DiriLogin();
            form.ShowDialog();
        }

    }catch(Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

2 个答案:

答案 0 :(得分:1)

首先你有Sql Injection的问题。阅读MySqlCommand.Parameters以及如何使用它。以下是您的查询应该如何:

string login = "SELECT * from rfidprototype.account where username =@UserName and password = @Password COLLATE Latin1_General_CS_AS";

MySqlCommand cmdDB = new MySqlCommand(login, SQLconn);
cmdDB.Parameters.AddWithValue("@UserName", USERNAME);
cmdDB.Parameters.AddWithValue("@Password", PASSWORD);

在带有COLLATE Latin1_General_CS_AS的Sql Server中,您告诉sql server使用区分大小写的检查查看密码。对于MYSQL,我认为它应该是COLLATE latin1_general_cs

答案 1 :(得分:0)

所以这是一个很好的方式来做你想要的。基本上将字符转换为 unicode (我没有测试过以下但它应该有用,或者至少指向正确的方向)

ax=plt.gca()
im=ax.images[-1]
im.colorbar.remove()
#in real code, color range is updated here
plt.colorbar()