angeland89 Skrevet 3. mars 2011 Del Skrevet 3. mars 2011 (endret) Hei jeg har et lite problem, ja vet det er bedre måter å gjøre pass på men det er innlev, jeg får beskjed om Must declare the scalar variable "@Mail". forsåvidt hvis jeg bytter om på mail og pass så kommer Must declare the scalar variable "@Password". noen som vet hvor feilen ligger fikk ikke så mye ut av google protected void Button1_Click(object sender, EventArgs e) { string user = TextBox1.Text; string pass = TextBox2.Text; SqlConnection con = new SqlConnection( WebConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString); SqlCommand cmd = new SqlCommand("SELECT ID FROM Medlemmer WHERE Mail = @Mail AND Passord = @Passord ", con); con.Open(); SqlDataReader les = cmd.ExecuteReader(); if (les.Read()) { user = les["@Mail"].ToString(); pass = les["@Passord"].ToString(); } try { Button1.Text = "Godkjent Passord"; } finally { con.Close(); } } takker på forhand Endret 3. mars 2011 av angeland89 Lenke til kommentar
Cemi Skrevet 3. mars 2011 Del Skrevet 3. mars 2011 (endret) Hvor deklarerer du @Mail og @Password variablene? Ser ikke at du deklarerer dem noen plasser i koden din? F.eks. SqlCommand cmd = new SqlCommand ("SELECT ID FROM Medlemmer WHERE Mail = @Mail AND Passord = @Passord ", con); // Deklarere parametere cmd.Parameters.AddWithValue("Mail", user); cmd.Parameters.AddWithValue("Password", pass); // ------------------- con.Open(); SqlDataReader les = cmd.ExecuteReader(); Endret 3. mars 2011 av Cemi Lenke til kommentar
angeland89 Skrevet 3. mars 2011 Forfatter Del Skrevet 3. mars 2011 Planen var at den hentet dem fra databasen og fant frem rett ID Lenke til kommentar
Cemi Skrevet 3. mars 2011 Del Skrevet 3. mars 2011 (endret) Ja, men den vet jo ikke hva den skal hente dersom du ikke sier hva mail og password skal være. Du må deklarere en verdi til dem, som gjør at den vet hvilke verdier den skal søke etter Og i ditt tilfelle, såvidt jeg kan forstå, så er det å sette dem til verdiene string user = TextBox1.Text; string pass = TextBox2.Text; Dersom du bruker @variabel i din ASP.NET eller C# kode så må du deklarere verdien den skal ha. Endret 3. mars 2011 av Cemi Lenke til kommentar
angeland89 Skrevet 3. mars 2011 Forfatter Del Skrevet 3. mars 2011 ja vil sette verdiene til string user = TextBox1.Text; string pass = TextBox2.Text; og finne ID når user og pass matcher. cmd.Parameters.AddWithValue("@Mail", user); cmd.Parameters.AddWithValue("@Password", pass); la til det du skrev med og uten @ gjorde ingen forskjell Lenke til kommentar
Cemi Skrevet 3. mars 2011 Del Skrevet 3. mars 2011 cmd.Parameters.AddWithValue("@Mail", TextBox1.Text); cmd.Parameters.AddWithValue("@Password", TextBox2.Text); Er det du prøver å lage en Login? Eller prøver du å selecte ID'en? if (les.Read()) { user = les["@Mail"].ToString(); pass = les["@Passord"].ToString(); } try { Button1.Text = "Godkjent Passord"; } finally { con.Close(); } Jeg skjønner ikke helt poenget med koden din. Dersom Les.Read() user = les["@Mail"].ToString() Vil sette user til det samme som user allerede er? Deretter prøve å sette Button1.Text til godkjent passord? Lenke til kommentar
angeland89 Skrevet 3. mars 2011 Forfatter Del Skrevet 3. mars 2011 gikk tilbake til tidligere versjon der feilen begynte, kanskje litt lettere å se feilen da protected void Button1_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString); SqlCommand cmd = new SqlCommand("Select count(*) from Medlemmer WHERE Mail = @Mail AND Passord = @Passord ", con); cmd.Parameters.AddWithValue("@Mail", TextBox1.Text); cmd.Parameters.AddWithValue("@Password", TextBox2.Text); object count = 0; try { con.Open(); count = cmd.ExecuteScalar(); } finally { con.Close(); } int login = Convert.ToInt32(count); if (login == 1) { FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, false); } else if (login == 0) { Feil.Text = "Ikke riktigt brukernavn eller login"; } else { Feil.Text = "Det skjedde en eller annen merkelig feil"; } } Lenke til kommentar
angeland89 Skrevet 3. mars 2011 Forfatter Del Skrevet 3. mars 2011 hehe fant feilen passord og password skriveleif takk for hjelpen uansett Lenke til kommentar
Wattengård Skrevet 4. mars 2011 Del Skrevet 4. mars 2011 try uten catch er vel fyfy? Litt sånn "on error resume next" fra gamle vb6-dagene -C- Lenke til kommentar
andreasn Skrevet 2. april 2011 Del Skrevet 2. april 2011 try uten catch er vel fyfy? Litt sånn "on error resume next" fra gamle vb6-dagene -C- En try uten catch vil kaste Exception som om det ikke var i en try-catch blokk så hvis feilen håndteres andre steder i koden kan det være greit. Som i dette tilfellet kan det være greit å sørge for at db-connection lukkes uansett og så kan Exceptions f.eks håndteres i Global.asax. Lenke til kommentar
GeirGrusom Skrevet 2. april 2011 Del Skrevet 2. april 2011 Burde bruker using her, det er det den er til. using(var con = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString) { } Lenke til kommentar
angeland89 Skrevet 10. mai 2012 Forfatter Del Skrevet 10. mai 2012 vet det er litt sent men kan gjøre en avsluttende oppdatering, har sluttet med SQL i koden og gått over til P/LINQ mye greiere å håndtere hehe. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå