Avatar billede meltinis Nybegynder
19. februar 2008 - 13:03 Der er 5 kommentarer og
2 løsninger

Brug af GUID som parameter

Jeg har følgende kode:
public UserInfo GetUser(Guid Userid)
    {
        SqlConnection Conn = new SqlConnection(connStr);
        SqlCommand cmd = new SqlCommand("GetUser", Conn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add(new SqlParameter("@userid",SqlDbType.UniqueIdentifier,36,Userid.ToString()));

... og herefter laver jeg execute osv., men den siger at den ikke har fået en parameter til denne @userid!! Jeg har testet at Userid indeholder denne GUID.

Min SP ser således ud:
ALTER PROCEDURE [dbo].[GetUser]
@userid UNIQUEIDENTIFIER
AS
BEGIN
    SET NOCOUNT ON;
    SELECT userid, username, [password],[name],email
    FROM Users
    WHERE userid = @userid

END

Hvorfor vil den ikke dette??? Skal jeg bruge noget andet end ToString til at parse den?
Avatar billede nielle Nybegynder
19. februar 2008 - 14:12 #1
Hvad sker der hvis du helt undlader ToString() ?
Avatar billede meltinis Nybegynder
19. februar 2008 - 14:24 #2
Jeg har løst den... det var nemlig noget med ToString at gøre, men i denne opsætning så blev den forvirret over at jeg havde definere størrelsen. Løsningen blev derfor:
cmd.Parameters.Add(new SqlParameter("@userid",SqlDbType.UniqueIdentifier));
cmd.Parameters["@userid"].Value = Userid;

På denne måde undgår man at definere størrelsen.
Skal du have lidt point for din tid...? Så smid et svar... :)
Avatar billede nielle Nybegynder
19. februar 2008 - 15:27 #3
Svar :^)

... men tag du bare de fleste selv. :^)
Avatar billede meltinis Nybegynder
20. februar 2008 - 09:14 #4
Vi siger at det var et 'normalt svar' værd :)
Avatar billede mikalj Nybegynder
20. februar 2008 - 11:38 #5
eller alternativt

cmd.Parameters.AddWithValue("@userid", Userid);
og lad ADO.net selv rode med type og længde
Avatar billede meltinis Nybegynder
20. februar 2008 - 11:41 #6
Ja, det er også en løsning, men åbner lidt op for problemer med at opretholde en stram datastruktur. Det er selvfølglig et mindre problem :)
Avatar billede nielle Nybegynder
20. februar 2008 - 16:57 #7
Takker for point :^)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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