Avatar billede Jim Rasmussen Novice
21. december 2011 - 09:53 Der er 10 kommentarer og
1 løsning

Se den fulde sql string

var sql = "UPDATE [Interessentadresse] SET Password = @newpassword WHERE (Internetnr = @username OR Interessentnr = @username) AND (Password = @password)";
            using (var cmd = Databases.GetMsSqlCommand(sql))
            {
                cmd.Parameters.AddWithValue("password", password);
                cmd.Parameters.AddWithValue("newpassword", newPassword);
                cmd.Parameters.AddWithValue("username", username);

                // var affectedRows = cmd.ExecuteNonQuery();

                // Remeber to close the connection!
                cmd.Connection.Close();

                return true;
            }





Ovenfor er den metode jeg bruger til at fyre min SQL string af sted med..

Men kan jeg få af se hvordan SQL strengen ser ud efter at den har indsat parametrene. "INDEN DER BLIVER EXECUTED"


Mvh. (:
Avatar billede claes57 Ekspert
21. december 2011 - 10:34 #1
du kan da gemme den i en session-variabel, og springe kaldet over - det er ved kun til debug?
Avatar billede Jim Rasmussen Novice
21. december 2011 - 10:42 #2
Ja det er kun til bdebug (:
Avatar billede Syska Mester
21. december 2011 - 12:23 #3
Det kommer jo næsten til at se sådan ud, da den bruger parameters. Det er først helt henne ved SQL Engine at den bliver lavet om, så det giver mening at kigge på.

Hvad er da problemet?

Du kan eventuelt bruge SQL Profiler, så kan du se hvad din SQL server modtager.

mvh
Avatar billede arne_v Ekspert
21. december 2011 - 23:32 #4
Det er lidt forskelligte hvordan forskellige databaser har implementeret parameters.

De kan lave det hele i ADO.NET provideren og sende en udfyldt SQL til databasen.

De kan lave noget a la:
PREPARE foobar FROM 'UPDATE [Interessentadresse] SET Password = @newpassword WHERE (Internetnr = @username OR Interessentnr = @username) AND (Password = @password)'
EXECUTE foobar USING @newpassword='X',@username='Y',@password='Z'
(syntax er MySQL ikke SQLServer)

Hvis det foerste saa kunne man principielt godt faa den faerdige SQL ud.

Men hvis det andet saa kan man ikke faa den faerdige SQL ud da den ikke eksisterer noget sted.

Jeg mener at SQLServer bruger en model som det andet (dog ikke med den angivne syntax).
Avatar billede Jim Rasmussen Novice
22. december 2011 - 08:18 #5
okay. Tak for jeres svar (: Det er fordi jeg har brug for at se præcis hvad hvordan sql sætningen ser ud inden den bliver eksekveret.

Det er en meget følsom database, så jeg vil være sikker på at der ikke går noget galt.


mvh
Avatar billede Jim Rasmussen Novice
22. december 2011 - 08:41 #6
Hvis man gør brug af SQL Profiler, kan man så se den færdig sql kommando "INDEN" at den bliver eksekveret?

(:
Avatar billede janus_007 Nybegynder
22. december 2011 - 12:30 #7
Nej det kan du ikke se :)

Men du kan skifte til Linq så kan du se sql udtrykket i din debugger.

Eller endnu bedre... sæt en testdb op og udvikl op imod den.
Avatar billede arne_v Ekspert
23. december 2011 - 02:46 #8
Hvad med at teste op mod en test database??
Avatar billede arne_v Ekspert
12. januar 2012 - 21:55 #9
tid at faa afsluttet her?
Avatar billede Jim Rasmussen Novice
28. februar 2012 - 13:19 #10
janus_007 send svar (:
Avatar billede Jim Rasmussen Novice
10. april 2012 - 11:15 #11
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester