voting poll

I have a poll when I test it. no matter what option I select it always votes value 1. not sure whats wrong. and when I add the cookie to record the vote it does not vote at all.  But for now I just need to know why it only votes for value one.


stored procedure

       (
       @Pk_OptionId  INT
       )
 
AS
--     GETS THE CURRENT NUMBER OF VOTES FOR THAT OPTION
       DECLARE      @i_NumberOfVoteS INT
       
       SELECT @i_NumberOfVotes = Votes
       FROM   PollOptions
       WHERE  PK_OptionId = @Pk_OptionId
 
       UPDATE PollOptions
       SET           Votes = (@i_NumberOfVotes + 1)
       WHERE  PK_OptionId = @Pk_OptionId
 
       RETURN



Protected Sub btnVote_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVote.Click
        RecordVote()
 
        'If Response.Cookies("Voted") Is Nothing Then
        '    Response.Cookies("Voted").Value = "Voted"
        '    Response.Cookies("Voted").Expires = DateTime.Now.AddDays(1)
 
        '    lblError.Visible = False
 
        '    '   Checks if the user can still vote by using cookie
        '    RecordVote()
        'Else
        '    lblError.Visible = True
        'End If
        'Response.Write(Response.Cookies("Voted"))
        '' Response.Redirect("test.aspx")
    End Sub
 
    Private Sub RecordVote()
        Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings.Item("Conn").ToString()
        Dim sqlConn As New SqlConnection(strConnString)
 
        sqlConn.Open()
        Dim sqlCmd As New SqlCommand()
 
        sqlCmd.CommandText = "IncrementVote"
        sqlCmd.CommandType = Data.CommandType.StoredProcedure
        sqlCmd.Connection = sqlConn
 
        '   Creation parameters
        Dim sqlParamQuestion As New SqlParameter("@PK_OptionId", Data.SqlDbType.Int)
 
        sqlParamQuestion.Value = rdoPollOptionList.SelectedValue
 
        sqlCmd.Parameters.Add(sqlParamQuestion)
 
        '   Execute stored procedure
        sqlCmd.ExecuteNonQuery()
 
        '   Close connection
        sqlConn.Close()
    End Sub
LVL 9
Seven priceFull StackAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

guru_samiCommented:
Here are troubleshooting options:
1: Execute your StoredProc directly from SqlServer and see if it is working as desired.
2: set breakpoint at line:
------> sqlParamQuestion.Value = rdoPollOptionList.SelectedValue
Confirm the "rdoPollOptionList.SelectedValue" has desired value.

Post your observations.
Now a question: How is your rdoPollOptionList DataBound? i.e. dynamically in code-behind?
If so post that code....make sure that you DataBind it once only i.e. Not Page.IsPostBack.
0
Seven priceFull StackAuthor Commented:
I excuted the stored procedure that works great.

I used
  If Page.IsPostBack Then
            ' RecordVote()
            Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings.Item("Conn").ToString()
            Dim sqlConn As New SqlConnection(strConnString)

            sqlConn.Open()
            Dim sqlCmd As New SqlCommand()

            sqlCmd.CommandText = "IncrementVote"
            sqlCmd.CommandType = Data.CommandType.StoredProcedure
            sqlCmd.Connection = sqlConn

            '   Creation parameters
            Dim sqlParamQuestion As New SqlParameter("@PK_OptionId", Data.SqlDbType.Int)

            sqlParamQuestion.Value = rdoPollOptionList.SelectedValue

            sqlCmd.Parameters.Add(sqlParamQuestion)

            '   Execute stored procedure
            sqlCmd.ExecuteNonQuery()

            '   Close connection
            sqlConn.Close()

instead of not Page.ispostback because the other way did not execute.

But it only finds Value 1 not value 2, 3 ect.



0
guru_samiCommented:
yes but how is your rdoPollOptionList getting its values?
Anythingin your Page_Load method?
Also you misunderstood ...i did NOT mean to put your StoredProc call into IsPostback....that call is fine....
What I am asking is about your RadioButtonList....how is it getting the option values?
Can you share all code related to your RBL
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Build an E-Commerce Site with Angular 5

Learn how to build an E-Commerce site with Angular 5, a JavaScript framework used by developers to build web, desktop, and mobile applications.

Seven priceFull StackAuthor Commented:
Private Sub DisplayPoll()
        Try
            Dim ds As DataSet = getActivePoll()

            '   Displays the poll
            lblPollQuestion.Text = ds.Tables(0).Rows(0)("Question")

            Dim i As Integer = 0
            For Each dr As DataRow In ds.Tables(1).Rows
                rdoPollOptionList.Items.Add(dr("Answer"))
                rdoPollOptionList.Items(i).Value = dr("PK_OptionId")
                rdoPollOptionList.SelectedIndex = 0

                i = i + 1
            Next
        Catch ex As Exception
            Throw ex
        End Try

    End Sub


0
Seven priceFull StackAuthor Commented:
The radio button is getting the option value from the database.


0
guru_samiCommented:
where are you calling this DisplayPoll() ?
Put the Call to this method in If Not Page.IsPostBack
0
Seven priceFull StackAuthor Commented:
Anythingin your Page_Load method?  found it thanks
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.