Results 1 to 2 of 2

Thread: Output parameter not working

  1. #1

    Thread Starter
    Fanatic Member
    Join Date
    Mar 2004
    Posts
    541

    Output parameter not working

    Hello all,

    I have a sql stored procedure with an output parameter. I'm just trying to read the output parameter in my code and I just cannot get it to work. The error I get is:
    "Procedure or function 'GetFolderData' expects parameter '@RootName', which was not supplied."

    It looks like I am supplying this but it's not working. Can someone tell me what I may be doing wrong?

    Here is my stored procedure:
    Code:
    ALTER PROCEDURE [dbo].[GetFolderData]
    	(
    	 @RootID int,
    	 @RootName varchar(30) OUTPUT,
    	 @Username varchar(30)
    	 
    	)
    	
    AS
    
    --Get folder root
    SELECT @RootName = FR.RootName 
    FROM Site.FolderRoots FR
    WHERE FR.RootID = @RootID
    
    --Get folders
    SELECT DISTINCT F.FolderID, F.FolderName, F.CreationDate
    FROM         Site.Folders AS F INNER JOIN
                          Site.FolderRights AS FR ON F.FolderID = FR.FolderID INNER JOIN
                          dbo.aspnet_Roles ON FR.RoleName = dbo.aspnet_Roles.RoleName INNER JOIN
                          dbo.aspnet_UsersInRoles ON dbo.aspnet_Roles.RoleId = dbo.aspnet_UsersInRoles.RoleId AND 
                          dbo.aspnet_Roles.RoleId = dbo.aspnet_UsersInRoles.RoleId INNER JOIN
                          dbo.aspnet_Users ON dbo.aspnet_UsersInRoles.UserId = dbo.aspnet_Users.UserId AND dbo.aspnet_UsersInRoles.UserId = dbo.aspnet_Users.UserId
    WHERE     (F.RootID = @RootID) AND (dbo.aspnet_Users.UserName = @UserName)
    ORDER BY F.CreationDate
    Here is my code:
    Code:
    Public Sub New(ByVal RootID As Integer, ByVal UserName As String)
    
            Dim cn As SqlConnection = New SqlConnection(ConnectionInfo.cs)
            Dim cmd As SqlCommand = New SqlCommand("GetFolderData", cn)
            cmd.CommandType = CommandType.StoredProcedure
    
            cmd.Parameters.AddWithValue("@RootID", RootID)
    
            Dim param As SqlParameter = New SqlParameter("@RootName", SqlDbType.VarChar, 30, ParameterDirection.Output)
            cmd.Parameters.Add(param)
    
            cmd.Parameters.AddWithValue("@UserName", UserName)
    
            _dtFolders = New DataTable
            Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
    
            da.Fill(_dtFolders)
            _RootName = param.Value
            _RootID = RootID
            _UserName = UserName
    
        End Sub
    Thanks,

    Strick

  2. #2
    Super Moderator jmcilhinney's Avatar
    Join Date
    May 2005
    Location
    Sydney, Australia
    Posts
    111,222

    Re: Output parameter not working

    Try changing the ParameterDirection to InputOutput. I know it doesn't sound right but I think I had the same trouble in the past and that fixed it.
    Why is my data not saved to my database? | MSDN Data Walkthroughs
    VBForums Database Development FAQ
    My CodeBank Submissions: VB | C#
    My Blog: Data Among Multiple Forms (3 parts)
    Beginner Tutorials: VB | C# | SQL

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width