Я создаю приложение форм, которому нужна функция входа в систему. Я установил соединение MySqL и применил его к своей форме. Он отвечает на мои ответы, давая мне ответ с пропуском или без пропуска, НО это только тогда, когда я прошу его сопоставить только ввод с паролями в базе данных. Я не могу заставить его совпадать с именами пользователей и паролями, хотя я, кажется, настроил свою таблицу так, как должно быть. У меня есть 3 столбца с идентификатором, именем пользователя (brugernavn) и паролем.
Я могу заставить его принять обе учетные данные, если я сопоставлю идентификаторы с правильным паролем, fx SELECT * FROM bruger WHERE password =@pass AND id=@usn
Я все еще плохо знаком с программированием, поэтому, если я запутался, пожалуйста, дайте мне знать.
Кто-нибудь может помочь?
Я пытался изменить мои параметры на что-то другое, но это не помогло. Кажется, с реальной таблицей проблемы не было, так как она могла получить доступ к моей информации о паролях и идентификаторах, поэтому я попытался изменить некоторые значения и другие данные из столбца имени пользователя, но это не помогло. У меня есть имя пользователя и пароль, используя varchar (100), а идентификатор использует INT (11) в качестве основного.
MySqlConnection connection = new MySqlConnection("server=localhost;port=3306;username=root;password=;database=bruger");
public void openConnection()
{
if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
}
public void closeConnection()
{
if (connection.State == System.Data.ConnectionState.Open)
{
connection.Close();
}
}
public MySqlConnection GetConnection()
{
return connection;
}
private void Loginbutton_Click(object sender, EventArgs e)
{
DB db = new DB();
string username = textBoxBrugernavn.Text;
string password = textBoxPassword.Text;
DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand("SELECT * FROM bruger WHERE password =@pass AND brugernavn =@usn", db.GetConnection());
command.Parameters.Add("@usn", MySqlDbType.VarChar).Value = username;
command.Parameters.Add("@pass", MySqlDbType.VarChar).Value = password;
adapter.SelectCommand = command;
adapter.Fill(table);
if (table.Rows.Count > 0)
{
MessageBox.Show("YES");
}
else
{
MessageBox.Show("NO");
}
Я надеялся, что это позволит мне запускать приложения для форм, а затем позволит войти в систему с уже созданными пользователями в моей базе данных. Однако это не так, поскольку я не могу сопоставить эти две информации в приложении.