13. februar 2003 - 14:13Der er
6 kommentarer og 1 løsning
et asp.net og stored procedure spm?
Hej med jer,
Jeg har en SPROC jeg kalder for at update data i Db fra et webinterface.
Mit problem er bare at jeg ikke kan få WHERE sætningen til at virke ved update.
Helt præcist har jeg en dropdownliste jeg kan vælge den pågældende brugernavn fra, som så med autopostback loader input felterne underneden med det data man kan opdatere. Droplistens valuefield er UserID't fra Db.
Med den her: onselectedindexchanged="ddlUsers_OnSelectedIndexChanged" kalder jeg en Sub rutine som så loader den pågældende bruger.
I den sub ser min SQL således ud:
Dim strSQL As String = "sp_GetUserData'" & ddlUsers.SelectedItem.Value & "'"
Kalder SPROC'en "sp_GetUserData'" og så det valgte Item fra droplisten.
er det rigtig syntax?
Jeg gør det på samme måde når jeg skal update min db.
Men her får jeg en error:
"Could not find stored procedure 'sp_UserUpdate'4''. "
4 talet er så userid'et fra db, men der er jo syntax fejl.
Hvordan retter jeg det i min sql som er under neden?
Jeg har min button update event, som håndtere update af db.
Her ser min sql således ud:
Dim strSQL As String = "sp_UserUpdate'" & ddlUsers.SelectedItem.Value & "'" myCommand = New SqlCommand(strSQL, myConnection)
Og min SPROC ser således ud:
ALTER PROCEDURE sp_UserUpdate ( @UserID int, @Company varchar(50), @Name varchar(50), @Email varchar(50), @Password varchar(50), @UserRights int, @AddedDate datetime ) AS
DECLARE @userIndex AS Int
IF @@ERROR = 0 BEGIN UPDATE tbl_User_Accounts SET Company = @Company, [Name] = @Name, Email = @Email, UserRights = @UserRights WHERE UserID = @userIndex END
Din SP bør se sådan ud: ALTER PROCEDURE sp_UserUpdate ( @UserID int, @Company varchar(50), @Name varchar(50), @Email varchar(50), @Password varchar(50), @UserRights int, @AddedDate datetime ) AS
IF @@ERROR = 0 BEGIN UPDATE tbl_User_Accounts SET Company = @Company, [Name] = @Name, Email = @Email, UserRights = @UserRights WHERE UserID = @UserID END
Det skulle gøre det. Jeg programmer normalt i C#, men der skulle ikke være så meget forskel
Dim parameterUserID As New SqlParameter("@UserID", SqlDbType.Int, 4) myCommand.Parameters.Add(parameterUserID) parameterUserID.Direction = ParameterDirection.Input parameterUserID.Value = ddlUsers.SelectedItem.Value
Spasser jeg er....... ;-)
Må jeg smide dig en mail hvis en dag? Savner nogen gange en .NET sparrings partner!
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.