Или лыжи не едут, или я тупой

  • Автор темы Автор темы A'Kon
  • Дата начала Дата начала
ROAD TO THE LEGEND
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
7 Фев 2018
Сообщения
2,224
Реакции
714
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Короче, решил в свободное время сделать простенькую авторизацию на c#, столкнулся с проблемой
Имеется поле с названием key и кнопка.

Код була
Код:
Expand Collapse Copy
 public bool KeyActivate(string keyactiv)
        {
            string query = $"SELECT * FROM keys WHERE key='{keyactiv}';";
            try
            {
                if (OpenConnection())
                {
                    MySqlCommand cmd = new MySqlCommand(query, conn);
                    MySqlDataReader reader = cmd.ExecuteReader();

                    if (reader.Read())
                    {
                      
                        reader.Close();
                        conn.Close();
                        return true;
                    }
                    else
                    {
                        
                        reader.Close();
                        conn.Close();
                        return false;
                    }
                }
                else
                {
                    conn.Close();
                    return false;
                }
            }
            catch (Exception ex)
            {
                conn.Close();
                return false;
            }
        }

Код кнопки

Код:
Expand Collapse Copy
private void metroButton5_Click(object sender, EventArgs e)
        {
            string keyactiv = key.Text;

            if (KeyActivate(keyactiv))
            {
                MessageBox.Show($"Ключ активирован!");
            }
            else
            {
                MessageBox.Show($"Ключа не существует!");
            }
        }

При нажатии кнопки ВСЕГДА выскакивает MessageBox.Show($"Ключа не существует!");
Таблица keys присутствует, столбец key также присутствует
key - VARCHAR 50 символов
nQkc8hDArgI.jpg
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
string query = $"SELECT * FROM keys WHERE key='{keyactiv}';";
Такое не прокатит, попробуй по-старому стандарту написать.
 
Последнее редактирование:
Function KeyExists(key) ‘функция проверки существования ключа реестра
Dim wshShell
Dim key2
On Error Resume Next'пропускаем ошибки
Set wshShell = CreateObject(«WScript.Shell»)
key2 = wshShell.RegRead(key) ‘читаем ключ
If Err.Number <> 0 Then ‘если ошибка — ключа нет
KeyExists = False
Else ‘значит есть
KeyExists = True
End If
On Error GoTo 0‘возвращаем ошибки в исходное положение
End Function
Попробуй это
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
string query = $"SELECT * FROM keys WHERE key='{keyactiv}';";
Такое не прокатит. Попробуй сразу вписать ключ, который есть в базе, чтобы проверить запрос
Интересно же почему такое не прокатит? Делал всё по аналогии с авторизацией
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Может ключи не правильные?
В каком смысле? В таблице столбец с типо VARCHAR, строка 123, ввожу в текстбокс 123, нажимаю кнопку и всегда не правильно пишет
 
В каком смысле? В таблице столбец с типо VARCHAR, строка 123, ввожу в текстбокс 123, нажимаю кнопку и всегда не правильно пишет
Так выведи месагу, а то reader может быть пустой
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
И как это должно выглядеть?
Попробуй так проверить
Код:
Expand Collapse Copy
   if (OpenConnection())
                {
                    MySqlCommand cmd = new MySqlCommand(query, conn);
                    MySqlDataReader reader = cmd.ExecuteReader();
                    reader.Read();
  
if(reader["key"].ToString() == keyactiv)
{ 
return true;
MessageBox.Show("Заебись");
reader.Close();
conn.Close();
}
else
{
MessageBox.Show("BB");
return false;
reader.Close();
conn.Close();
}
           
                }
                else
                {
                    conn.Close();
                    return false;
                }
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Попробуй так проверить
Код:
Expand Collapse Copy
   if (OpenConnection())
                {
                    MySqlCommand cmd = new MySqlCommand(query, conn);
                    MySqlDataReader reader = cmd.ExecuteReader();
                    reader.Read();
 
if(reader.["key"].ToString() == keyactiv)
{
return true;
MessageBox.Show("Заебись");
reader.Close();
conn.Close();
}
else
{
MessageBox.Show("BB");
return false;
reader.Close();
conn.Close();
}
          
                }
                else
                {
                    conn.Close();
                    return false;
                }
В этой строчке ошибка ( жалуется на "[" )
Код:
Expand Collapse Copy
 if (reader.["key"].ToString() == keyactiv)


Код:
Expand Collapse Copy
Error    CS1001    Identifier expected
 
Потом он сам поправит, я для макета сделал. И да, они закроются
Там то я поправил, ибо возвращение тру в конце
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
делать сразу подключение к дб пизда как небезопасно, но это так
попробуй убрать ; в конце
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу