Gå til innhold

Anbefalte innlegg

Hei,

 

Nå sitter jeg bra fast. Når jeg lager en loginside til prosjektet jeg driver med nå, så får jeg ikke den til å fungere.

private bool DBConnection(string txtUser, string txtPass)
   {
       txtPass = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPass, "SHA1");

       string connString = ConfigurationSettings.AppSettings["ConnectionString"];
       MySqlConnection connection = new MySqlConnection(connString);
       connection.Open();

       MySqlCommand cmdUser = new MySqlCommand("checkuser", connection);
       cmdUser.Parameters.Add(new MySqlParameter("uname", MySql.Data.MySqlClient.MySqlDbType.VarChar,20));
       cmdUser.Parameters.Add(new MySqlParameter("pass", MySql.Data.MySqlClient.MySqlDbType.VarChar,40));

       cmdUser.Parameters[0].Value = txtPass;
       cmdUser.Parameters[1].Value = txtPass;

       MySqlParameter ReturnValue = cmdUser.Parameters.Add("ReturnValue", MySqlDbType.Int16,1);
       ReturnValue.Direction = ParameterDirection.Output;
       ReturnValue.Value = 0;

       cmdUser.ExecuteScalar();
       ReturnValue.Value = cmdUser.Parameters["ReturnValue"].Value;

       if ((int)ReturnValue.Value < 1)
       {
           lblMessageLogin.Text = "Invalid login";
           return false;
       }
       else
       {
           connection.Close();
           return true;
       }
   }

 

Dette er funksjonen som skal sjekke loginen. Her så stopper den på ExecuteScalar() funksjonen og sier at jeg har syntax feil i Store Procedure. "Near `checklogin`" som den sier.

 

CREATE DEFINER=`mobil`@`%` PROCEDURE `checkuser`(uname varchar(20), pass varchar(40), OUT ReturnValue int)
BEGIN
   Declare ReturnValue int;
   set ReturnValue = 0;
   set ReturnValue = (SELECT COUNT(*) FROM `mobil`.`user` WHERE `username` like uname AND `mobil`.`password` like pass);
END

 

Her er lagringsprossedyren og denne er laget fra Query Browseren til mysql.

 

Noen som vet hva som kan være feil??

Lenke til kommentar
  • 2 uker senere...
Videoannonse
Annonse

CREATE DEFINER=`mobil`@`%` PROCEDURE `checkuser`(uname varchar(20), pass varchar(40), OUT ReturnValue int)
BEGIN
   Declare ReturnValue int;
   set ReturnValue = 0;
   set ReturnValue = (SELECT COUNT(*) FROM `mobil`.`user` WHERE `username` like uname AND `mobil`.`password` like pass);
END

Noen som vet hva som kan være feil??

Nå vet jeg ikke foran og bak på MySql, men jeg ser at det er forskjell på måten du aksesserer kolonnene på - 'mobil'.xxx eller bare xxx. Kan det være feilen?

 

- grå -

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...