Avatar billede hellfishdk Nybegynder
15. november 2006 - 14:40 Der er 5 kommentarer og
1 løsning

Update med GUID i stored procedure

Jeg kan ikke køre min update, pga af en parameter der skal være GUID/SQL.UniqueIdentifier

min kode er:

Dim kFor, kEft, kEmail, kTlf, kMob, kFøds As TextBox
        Dim kKøn, kReminder As DropDownList
        Dim kNews As CheckBox
       
        kFor = dvw_UsrInfo.FindControl("tb_kFor")
        kEft = dvw_UsrInfo.FindControl("tb_kEft")
        kEmail = dvw_UsrInfo.FindControl("tb_kEmail")
        kTlf = dvw_UsrInfo.FindControl("tb_kTlf")
        kMob = dvw_UsrInfo.FindControl("tb_kMob")
        kFøds = dvw_UsrInfo.FindControl("tb_kFøds")
        kKøn = dvw_UsrInfo.FindControl("ddl_usrKøn")
        kReminder = dvw_UsrInfo.FindControl("ddl_usrRem")
        kNews = dvw_UsrInfo.FindControl("chkBox_News")

        DS_Kunde.UpdateCommand = "sp_updKunde"
        DS_Kunde.UpdateCommandType = SqlDataSourceCommandType.StoredProcedure

        DS_Kunde.UpdateParameters.Add("@kID", Session("kID"))
        DS_Kunde.UpdateParameters.Add("@kFor", TypeCode.String, kFor.Text)
        DS_Kunde.UpdateParameters.Add("@kEft", TypeCode.String, kEft.Text)
        DS_Kunde.UpdateParameters.Add("@kEmail", TypeCode.String, kEmail.Text)
        DS_Kunde.UpdateParameters.Add("@kTlf", TypeCode.String, kTlf.Text)
        DS_Kunde.UpdateParameters.Add("@kMob", TypeCode.String, kMob.Text)
        DS_Kunde.UpdateParameters.Add("@kFøds", TypeCode.String, kFøds.Text)
        DS_Kunde.UpdateParameters.Add("@kKøn", TypeCode.Int16, kKøn.SelectedValue)
        DS_Kunde.UpdateParameters.Add("@kNews", TypeCode.Boolean, kNews.Checked)
        DS_Kunde.UpdateParameters.Add("@kReminder", TypeCode.Int16, kReminder.SelectedValue)
        DS_Kunde.UpdateParameters.Add("@aspnet_UserId", Session("currentUserKey"))
        DS_Kunde.Update()<--Det er den her der laver fejl. Jeg opretter session("currentUserKey") gennem en membership.getuser.provideruserkey. Men jeg får denne fejl i debug: "Procedure or Function 'sp_updKunde' expects parameter '@aspnet_UserId', which was not supplied."

Hvad skal jeg gøre/gøre jeg forkert???
Avatar billede hellfishdk Nybegynder
15. november 2006 - 14:41 #1
UPS, det er her fejlen kommer:

DS_Kunde.UpdateParameters.Add("@aspnet_UserId", Session("currentUserKey"))<--Det er den her der laver fejl. Jeg opretter session("currentUserKey") gennem en membership.getuser.provideruserkey. Men jeg får denne fejl i debug: "Procedure or Function 'sp_updKunde' expects parameter '@aspnet_UserId', which was not supplied."
Avatar billede jokkejensen Novice
15. november 2006 - 15:03 #2
hvis du debugger - hvad er Session("currentUserKey") så sat som ? det du forventede ?
Avatar billede hellfishdk Nybegynder
15. november 2006 - 15:18 #3
jeg får denne meddelse:

Conversion from type 'Guid' to type 'String' is not valid.

Men hvis jeg add'er en ToString, så hjalp det delvis. Når får jeg denne fejl når jeg opdater: Procedure or function sp_updKunde has too many arguments specified.
Jeg får opdatering gennemført i DB'en, men jeg burde ikke få fejlen så.

Jeg har talt parametrene og de passer med det antal jeg har defineret i stored procedure.
Avatar billede froenie Nybegynder
17. november 2006 - 12:08 #4
Har du kommaer i nogle af dine parametre, så kan den blive tolket som seperator og derved tælles som flere... ? Bare et skud fra hoften :)
Avatar billede hellfishdk Nybegynder
17. november 2006 - 12:57 #5
Næh ikke hvad jeg kan se.

Den se således ud:

@kID int = 0,   
@kFor nvarchar(50) = 0,
@kEft nvarchar(50) = 0,
@kEmail nvarchar(256) = 0,
@kTlf nvarchar(6) = 0,
@kMob nvarchar(6) = 0,
@kFøds nvarchar (8) = 0,
@kKøn int = 0,
@kNews bit = 0,
@kReminder int = 0,
@aspnet_UserId uniqueidentifier
AS

BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    -- Insert statements for procedure here
UPDATE tbl_Kunde
SET kFornavn = @kFor, kEfternavn = @kEft, Telefon = @kTlf, Mobilnr = @kMob, Fødselsdag = @kFøds, FK_Køn = @kKøn, Nyhedsbrev = @kNews, FK_ReminderID = @kReminder
WHERE    (kundeID = @kID)
END

BEGIN
UPDATE    aspnet_Membership
SET Email = @kEmail, LoweredEmail = LOWER(@kEmail)
WHERE    (UserId = @aspnet_UserId)
END
Avatar billede hellfishdk Nybegynder
02. marts 2007 - 15:00 #6
ingen 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
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