private void BtnAdminAbort_Click(object sender, EventArgs e) { //Om du avbryter så döljs fönstret this.Hide(); //En ny instans av AdminControl skapas AdminControl admin = new AdminControl(); //Detta fönster visas admin.ShowDialog(); }
//Metod som kallas när man klickar på registrera medlem private void BtnAdminRegister_Click(object sender, EventArgs e) { //Här deklarerar jag en variabel för connectionstring som kan ses som en address till databasen. string connectionString = ConfigurationManager.ConnectionStrings["TRF.Properties.Settings.TRFMembersConnectionString"].ConnectionString; //Jag börjar med att deklarera min sql-query i en variabel då den är lite längre. //Översätter man queryn så står det i stort sätt: Lägg till i tabellen Members med värdena (variablar) i den ordning man deklarerat dom string query = "INSERT INTO Members VALUES (@FirstName, @LastName, @Address, @Email, @UserName, @Password)"; //Här skapas en ny instans av en sql uppkoppling med hjälp av connectionstringen jag deklarerade tidigare. using (SqlConnection connection = new SqlConnection(connectionString)) //Här skapas en ny instans av en sql data adapter där som tar hand om kommunikationen med databasen. //Detta görs med att först mata in ett command till databasen med hjälp av en SQL query, och även vilken uppkoppling som ska användas. using (SqlCommand command = new SqlCommand(query, connection)) { //Eftersom man ska intoducera data till databasen så måste man öppna kopplingen manuellt. connection.Open(); //Deklarerar ett antal variabler med den inmatade informationen om den nya medlemen. string FName = TxtAdminAddFirstName.Text; string LName = TxtAdminAddLastName.Text; string Addr = TxtAdminAddAddress.Text; string Email = TxtAdminAddEmail.Text; string UName = TxtAdminAddUserName.Text; string Pass = TxtAdminAddPass.Text; //En if-sats som ska utesluta att något av fälten är tomt. if (FName == "" || LName == "" || Addr == "" || Email == "" || UName == "" || Pass == "") { //Om något av fälten är tomt så kommer en varning visas. MessageBox.Show("Alla fält måste fyllas i!"); } //Om alla fälten är ifyllda else { //Skickas variablarna in i sql kommandot. command.Parameters.AddWithValue("@FirstName", FName); command.Parameters.AddWithValue("@LastName", LName); command.Parameters.AddWithValue("@Address", Addr); command.Parameters.AddWithValue("@Email", Email); command.Parameters.AddWithValue("@UserName", UName); command.Parameters.AddWithValue("@Password", Pass); command.ExecuteScalar(); //När allt är klart så döljs fönstret this.Hide(); //En ny instans av AdminControl skapas AdminControl admin = new AdminControl(); //Detta fönster visas admin.ShowDialog(); } } }
public void BtnAdminAddTiger_Click(object sender, EventArgs e) { string connectionString = ConfigurationManager.ConnectionStrings["TRF.Properties.Settings.TRFMembersConnectionString"].ConnectionString; string query = "INSERT INTO Tigers VALUES (@OwnerId, @Name, @Age, @Species)"; using (SqlConnection connection = new SqlConnection(connectionString)) using (SqlCommand command = new SqlCommand(query, connection)) { connection.Open(); string Name = TxtAdminAddTigerName.Text; int Age = 0; //Omvandlar inmatad ålder till int int.TryParse(TxtAdminAddTigerAge.Text, out Age); string Species = TxtAdminAddSpecies.Text; int OwnerId = 0; //Omvandlar inmatad OwnerId till int int.TryParse(TxtAdminAddOwnerId.Text, out OwnerId); //Om något av fälten är tomma: if (Name == "" || Species == "" || Age == 0 || OwnerId == 0) { //Varning MessageBox.Show("Alla fält måste fyllas i!"); } //Om det inte går att omvandla åler och OwnerId till int else if (!int.TryParse(TxtAdminAddTigerAge.Text, out Age) || !int.TryParse(TxtAdminAddOwnerId.Text, out OwnerId)) { //Varning MessageBox.Show("Du måste mata in ett tal som ålder!"); } //Om allt är som det ska. else { //Lägger till värderna i query command.Parameters.AddWithValue("@Name", Name); command.Parameters.AddWithValue("@Age", Age); command.Parameters.AddWithValue("@Species", Species); command.Parameters.AddWithValue("@OwnerId", OwnerId); command.ExecuteScalar(); //Döljer och visar admin control igen. this.Hide(); AdminControl newadmin = new AdminControl(); newadmin.ShowDialog(); } } }
//Login Metoden private void LoginMethod() { //Hämtar användarnamn och lösenord och sparar dom i variablar string username = this.TxtLoginUserName.Text; string pass = this.TxtLoginPass.Text; //Om Användarnamn och lösen är tomma if (username == "" && username == "") { //Varning MessageBox.Show("Du måste fylla i båda fälten för att logga in!"); } //Om Användarnamn är tomt else if (username == "" && pass != "") { //Varning MessageBox.Show("Du måste mata in ett användarnamn!"); } //Om Lösen är tomt else if (pass == "" && username != "") { //Varning MessageBox.Show("Du måste mata in ett lösenord!"); } //Om Användarnamn är admin (versaler är obetydliga då jag använder mig av string.ToLower(); som gör strängen till gemener. else if (username.ToLower() == "admin") { //Om lösen är Admin123 (Exakt matchning viktig) if (pass == "Admin123") { //Göm detta fönster och skapa AdminControl och öppna det. this.Hide(); AdminControl admin = new AdminControl(); admin.ShowDialog(); } //Om lösenordet är fel else { //Varning MessageBox.Show("Du försöker logga in som administratör men har matat in ett felaktigt lösenord."); } } //Om en medlem försöker logga in: else { //Denna query söker efter medlemar som matchar det inmatade användarnamnet. LOWER() betyder att versaler inte kommer påverka string query = "SELECT * FROM Members WHERE LOWER(UserName) = LOWER(@UserName)"; //Här skapas en uppkoppling mot databasen med hjälp av connectionsträngen som skapades tidigare. using (SqlConnection connection = new SqlConnection(connectionString)) using (SqlCommand command = new SqlCommand(query, connection)) using (SqlDataAdapter adapter = new SqlDataAdapter(command)) { //Här matar vi in data i variabeln för sql queryn command.Parameters.AddWithValue("@UserName", TxtLoginUserName.Text); //Skapar ett nytt datatable DataTable dt = new DataTable(); //Adaptern fyller datatablet med den hämtade datan adapter.Fill(dt); //Om det fanns en användare med samma UserName så körs detta kodblock (Vilket betyder att det finns en rad i tabellen (Användaren man matchat med) ) if (dt.Rows.Count == 1) { //Skapar en datarow med den första raden (Borde också vara den enda) DataRow dr = dt.Rows[0]; //När man hittat en användare så kollar man om lösenordet stämmer med kolumn nr 6 vilket motsvarar Pass. Här letar man efter en exakt matchning if (dr[6].ToString() == TxtLoginPass.Text) { //Om allt stämmer så loggas man in MessageBox.Show("Du har loggat in som " + TxtLoginUserName.Text); this.Hide(); MemberControl mc = new MemberControl(); mc.MemberId(dr[0]); mc.ShowDialog(); } //Om lösenordet är fel else { //Varning! MessageBox.Show("Felaktigt lösenord!"); } } //Om mot all förmodan sökningen skulle resultera i fler rader. //Alltså fler användare med samma användarnamn. //Detta ska inte gå att skapa men någon som har tillgång till databasen skulle kunna lägga till det manuellt //Detta är bara en extra säkerhetsåtgärd else if (dt.Rows.Count > 1) { //Varning!, kontakta admin då denna kan radera eller ändra användarnamn MessageBox.Show("Det har blivit något fel och det finns fler användare med det användarnamnet. Kontakta adminitratören för hjälp!"); } //Om användarnamnet inte hittas else { //Varning MessageBox.Show("Användarnamnet finns inte!"); } } } }