Cemi Skrevet 3. mars 2011 Del Skrevet 3. mars 2011 (endret) 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 3. mars 2011 av Cemi Lenke til kommentar
Nickless Skrevet 3. mars 2011 Del Skrevet 3. mars 2011 (endret) 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 3. mars 2011 av Nickless Lenke til kommentar
Wattengård Skrevet 4. mars 2011 Del Skrevet 4. mars 2011 User er reservert ord i SQL Server.. (Blir iallefall rosa i syntaxhighlighteren) Så da må du bruke [user] ved spørringer... Backticks er mysql-tullball... -C- 1 Lenke til kommentar
Cemi Skrevet 4. mars 2011 Forfatter Del Skrevet 4. mars 2011 Funket når jeg satte [ ] rundt User. Takk for det. 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å