Gå til innhold

Anbefalte innlegg

Har store problemer med å finne feilen I koden jeg skriver i C# som henter data i fra en database. Håper noen kan ta en rask kikk på den :)

 

            SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
           SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM User WHERE Username=@txtUsername AND Password=@txtPassword", con);

           cmd.Parameters.AddWithValue("txtUsername", txtUsername.Text);
           cmd.Parameters.AddWithValue("txtPassword", txtPassword.Text);

           SqlCommand cmd2 = new SqlCommand("Select Role from User where Username = @txtUsername and Password = @txtPassword", con);

           cmd2.Parameters.AddWithValue("txtUsername", txtUsername.Text);
           cmd2.Parameters.AddWithValue("txtPassword", txtPassword.Text);

           object count = 0;
           object role = "";

           try
           {
               con.Open();
               count = cmd.ExecuteScalar();
               role = cmd2.ExecuteScalar();
           }
           finally
           {
               con.Close();
           }

 

Denne koden gir da

Incorrect syntax near the keyword 'User'.

ved cmd.ExecuteScalar();

 

Forstår ikke hvorfor. User er navnet på tabellen, så det er ikke feilen.

Endret av Cemi
Lenke til kommentar
Videoannonse
Annonse

Har store problemer med å finne feilen I koden jeg skriver i C# som henter data i fra en database. Håper noen kan ta en rask kikk på den :)

 

            SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
           SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM User WHERE Username=@txtUsername AND Password=@txtPassword", con);

           cmd.Parameters.AddWithValue("txtUsername", txtUsername.Text);
           cmd.Parameters.AddWithValue("txtPassword", txtPassword.Text);

           SqlCommand cmd2 = new SqlCommand("Select Role from User where Username = @txtUsername and Password = @txtPassword", con);

           cmd2.Parameters.AddWithValue("txtUsername", txtUsername.Text);
           cmd2.Parameters.AddWithValue("txtPassword", txtPassword.Text);

           object count = 0;
           object role = "";

           try
           {
               con.Open();
               count = cmd.ExecuteScalar();
               role = cmd2.ExecuteScalar();
           }
           finally
           {
               con.Close();
           }

 

Denne koden gir da

Incorrect syntax near the keyword 'User'.

ved cmd.ExecuteScalar();

 

Forstår ikke hvorfor. User er navnet på tabellen, så det er ikke feilen.

 

Prøv:

SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM `User` WHERE Username=@txtUsername AND Password=@txtPassword", con);

 

Kan være den er sensitiv på order User grunnet at User kan forveksles med at den tror det gjelder brukere av hele databasen, f.eks Root, Administrator osv (mao at du skal gjøre endringer på noen av dem).

 

Nå kan jeg ikke SQL-spørringssyntaksen i C#, men hvis ikke det fungerer, hva skjer hvis du skriver '' rundt verdiene i spørringen?

F.eks: Username='@txtUsername'

Endret av Nickless
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å
×
×
  • Opprett ny...