MySQL Пароль Логин Код? - PullRequest
       7

MySQL Пароль Логин Код?

0 голосов
/ 06 декабря 2011

Я пытаюсь сделать код входа в C # с MySQL.Обычно пользователь вводит имя пользователя и пароль, а затем код проверяет базу данных, если пароль правильный.У меня проблемы с получением кода для чтения из базы данных ... Вот где я нахожусь.

public string strUsername;
public string strPassword;


//Connect to DataBase
MySQLServer.Open();

//Check Login
MySqlDataReader mySQLReader = null;
MySqlCommand mySQLCommand = MySQLServer.CreateCommand();
mySQLCommand.CommandText = ("SELECT * FROM user_accounts WHERE username =" +strUsername);
mySQLReader = mySQLCommand.ExecuteReader();
while (mySQLReader.Read())
{
  string TruePass = mySQLReader.GetString(1);
  if (strPassword == TruePass)
  {
    blnCorrect = true;
    //Get Player Data
  }
}

MySQLServer.Close();

Из того, что я сделал в прошлом, я думал, что это будет работать, ноесли я распечатываю, кажется, что его не читают.Я все еще довольно новичок в MySQL, поэтому любая помощь будет отличной.

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Нечисловое значение поля должно быть заключено в одинарную кавычку.

mySQLCommand.CommandText = "SELECT * FROM user_accounts WHERE username ='" +strUsername + "'";
mySQLCommand.Connection=MySQLServer; 

но вы должны использовать Parameters для предотвращения SQL-инъекции .

 mySQLCommand.CommandText = "SELECT * FROM user_accounts WHERE username =@username"; 
 mySQLCommand.Connection=MySQLServer;
 mySQLCommand.Parameters.AddWithValue("@username",strUsername);
0 голосов
/ 06 декабря 2011
        string con_string = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Database.mdf;Integrated Security=True;User Instance=True";
        string query = "SELECT * FROM Users WHERE UseName='" + txtUserName.Text.ToString() + "' AND Password='" + txtPassword.Text + "'";
        SqlConnection Con = new SqlConnection(con_string);
        SqlCommand Com = new SqlCommand(query, Con);
        Con.Open();
        SqlDataReader Reader;
        Reader = Com.ExecuteReader();

        if (Reader.Read())
        {
            lblStatus.Text="Successfully Login";
        }
        else
        {
           lblStatus.Text="UserName or Password error";
        }
        Con.Close();

Как сказал AVD, вы должны использовать параметры, чтобы предотвратить инъекцию sql ....

...