Click here to Skip to main content
15,891,864 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
What is wrong it now delete data from the database when I click the button.

VB
Private Sub Unassign_ButtonClicked(sender As Object, e As AxnImageButtonEventArgs) Handles Unassign.ButtonClicked
        If PagesAssigned.SelectedItem Is Nothing OrElse PagesAssigned.SelectedValue.CompareTo("") = 0 Then
            Message.Text = "Please select page to unassign"
            Message.ForeColor = Color.Red
            Exit Sub
        End If

        Dim conn1 As New SqlConnection(WebFrameworkConnection.GetConnectionString())

        For Each pagename As ListItem In PagesAssigned.Items
            If pagename.Selected Then
                Try

                      
                    conn1.Open()
                    Dim stmt1 As New SqlCommand("select pageid from dbo.pagedefinition where pageaspx = @pagename and pageparameters = @pageparameters", conn1)
                    stmt1.Parameters.Add("@pagename", SqlDbType.VarChar, 255).Value = SelectedPage(pagename.Text)
                    stmt1.Parameters.Add("@pageparameters", SqlDbType.VarChar, 255).Value = SelectedParameters(pagename.Text)
                    Dim pageid As Integer = stmt1.ExecuteScalar
                    conn1.Close()

                    conn1.Open()
                    Dim stmt2 As New SqlCommand("delete from dbo.pagesecurity where pageid = @pageid and rolename = @rolename", conn1)
                    stmt2.Parameters.Add("@pageid", SqlDbType.BigInt).Value = pageid
                    stmt2.Parameters.Add("@rolename", SqlDbType.VarChar, 256).Value = RoleList.SelectedValue
                    stmt2.ExecuteNonQuery()
                    conn1.Close()

                    If CleanUpAccessFailed(pageid, RoleList.SelectedValue) Then
                        Message.Text = "Parent Cleanup Failed, Page NOT Deleted"
                        Message.ForeColor = Color.Red

                        conn1.Open()
                        Dim stmt3 As New SqlCommand("insert into dbo.pagesecurity (pageid,rolename) values (@pageid,@rolename)", conn1)
                        stmt3.Parameters.Add("@pageid", SqlDbType.BigInt).Value = pageid
                        stmt3.Parameters.Add("@rolename", SqlDbType.VarChar, 256).Value = RoleList.SelectedValue
                        stmt3.ExecuteNonQuery()
                        conn1.Close()
                    Else
                        Message.Text = "Page Successfully Removed from Role"
                        Message.ForeColor = Color.Blue
                    End If

                Catch ex As Exception
                    Message.Text = "Page Failed Removal from Role"
                    Message.ForeColor = Color.Red
                Finally
                    conn1.Close()
                End Try
            End If
        Next
        RefreshPageLists()
    End Sub
Posted
Comments
Richard C Bishop 28-Oct-13 18:03pm    
Debug and find out if your parameters are getting the correct value you are expecting.
S. M. Ahasan Habib 28-Oct-13 22:22pm    
Run sql server profiler and see what sql execute to the database. Peek that sql from profiler and open that to management studio. Analyze and test that sql. Hopefully you will identify your problem.
postonoh 29-Oct-13 17:45pm    
I look at the profiler and the name of the role shows up and the pageid is there.I get completed but the data is still in the database.
postonoh 29-Oct-13 20:04pm    
I look at the stmt2.ExecuteNonQuery() When I try to deleted more than one record at the sametime it getting a zero or an one. Lets me believe that problem with all are not deleting. but when I select one record at a time it deletes.

As per your code just write parameters like that:


SQL
conn1.Open()
                    Dim stmt1 As New SqlCommand("select pageid from dbo.pagedefinition where pageaspx = @pagename and pageparameters = @pageparameters", conn1)
                    stmt1.Parameters.Add("@pagename", SqlDbType.VarChar, 255).Value = SelectedPage(pagename.Text)
                    stmt1.Parameters.Add("@pageparameters", SqlDbType.VarChar, 255).Value = SelectedParameters(pagename.Text)
                    Dim pageid As Integer = stmt1.ExecuteScalar
                    conn1.Close()

                    conn1.Open()
                    Dim stmt2 As New SqlCommand("delete from dbo.pagesecurity where pageid = '" + pageid + "' and rolename = '" + RoleList.SelectedValue + "' ", conn1)
                    stmt2.Parameters.Add("@pageid", pageid);
                    stmt2.Parameters.Add("@rolename", RoleList.SelectedValue)
                    stmt2.ExecuteNonQuery()
                    conn1.Close()


Note: If their is require some conversation then please make some conversation with parameter field.

Thank You.....:-)
 
Share this answer
 
Thank you I have decide to tackle this a different way. I decide to load all the menu items into a list and remove pages from the list if user security is not assigned.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900