17. december 2005 - 15:51Der er
10 kommentarer og 1 løsning
Login-form skal lukkes/termineres efter at login = ok
Hej Eksperter,
Jeg er ved at lave en login-form til en applikation. Når man login = ok skal der åbnes en ny form med selve "programmet".
Mit problem er at jeg ikke kan få lukket form1 (login-formen) når login = ok uden at form2 også lukker. Bruger man this.hide(); kører den stadig i baggrunden.
Er jeg helt ude i hampen eller har I nogle gode forslag?
Mvh Ole
Koden er herunder:
namespace WindowsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private string login(string bruger, string pass) { OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\Ole.SKOVBAKKEN\\Dokumenter\\Visual Studio 2005\\Projects\\WindowsApplication2\\database\\database.mdb"); con.Open(); OleDbCommand cmd = new OleDbCommand("SELECT * FROM Brugere", con); OleDbDataReader rdr = cmd.ExecuteReader();
while (rdr.Read()) { if ((string)rdr[1] == bruger && (string)rdr[2] == pass) { con.Close(); return "1"; } else { con.Close(); return "0"; } } return "0"; }
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Well, til at starte med hvis jeg smide username og password i din SQL statement og teste om den returene 1 row, for så findes bruger med det angivne password jo....
Det Andet ville jeg lave lidt om på.... start din mail form, og start login form oven på den, angiver han ikke korrrekt user og pass, så luk det hele ned....
Login formen skal vises som en Dialog, altså sådan at Main formen ikke kan tage focus så længe login formen er åben....
this.DialogResult = DialogResult.Ok; hvis login gik godt, og noget andet hvis det fejlede.... og så bare lave en close på din login dialog....
På din main form kan du så teste hvad DialogResult på din login form står til... hvis den står til DialogResult.Ok; så ved du jo at det hvis godt, hvis den står til alt andet, gik det ikke godt......
DialogResult result = loginform.ShowDialog();
if(result == DialogResult.Ok) { // han blev logget ind } eles { // forkert kode eller password }
Ok, nu virker skidtet... Men hvad gør jeg så hvis jeg vil have brugernummeret fra form1 med over i form2? (Jeg skal nok lige lave et nyt spørgsmål, så du kan få nogle flere points.)
Min main ser nu sådan ud:
static class Program { public static Form staticVar = null; /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() {
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.