Hello,

i need help to do the insert inside repeater, but when i debug the stock_code inside sql command is not declared. what should i do?

Protected Sub repeaterAlert_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles repeaterAlert.ItemDataBound
        Try
            stockCodeheader.Text = " Stock Code "
            plcNameheader.Text = " PLC Name "
            boardheader.Text = " Board "
            sectorheader.Text = " Sector "
            subSectorheader.Text = " Sub Sector "
            yearheader.Text = " Year "
            total.Text = " DSO "

            '** Declare Session **'
            If Session("tempara1") = "" Then
                DSO1 = e.Item.DataItem("para1").ToString
            Else
                DSO1 = Session("tempara1")
            End If
            '*********************'

            Dim stockCode As Label = CType(e.Item.FindControl("stockCode"), Label)
            If Not IsNothing(stockCode) Then
                stockCode.Text = e.Item.DataItem("stock_code").ToString
            End If

            Dim plcName As Label = CType(e.Item.FindControl("plcName"), Label)
            If Not IsNothing(plcName) Then
                plcName.Text = e.Item.DataItem("current_name").ToString
            Else
            End If

            Dim board As Label = CType(e.Item.FindControl("board"), Label)
            If Not IsNothing(board) Then
                board.Text = e.Item.DataItem("board_name").ToString
            Else
            End If

            Dim sector As Label = CType(e.Item.FindControl("sector"), Label)
            If Not IsNothing(sector) Then
                sector.Text = e.Item.DataItem("sector_name").ToString
            Else
            End If

            Dim subSector As Label = CType(e.Item.FindControl("subSector"), Label)
            If Not IsNothing(subSector) Then
                subSector.Text = e.Item.DataItem("sub_sector_name").ToString
            Else
            End If

            Dim year As Label = CType(e.Item.FindControl("year"), Label)
            If Not IsNothing(year) Then
                year.Text = e.Item.DataItem("year_id").ToString
            Else
            End If

            '** alert's colour trigger **'

            Dim total1 As Label = CType(e.Item.FindControl("total1"), Label)
            total1.Text = e.Item.DataItem("dso").ToString
            Dim compval As Double = total1.Text
            total1.Text = Math.Round(compval, 2)

            If total1.Text >= DSO1 Then
                total1.BackColor = Drawing.Color.Red
            End If

            If Session("tempara1") = "" Then
                '** insert to fistdb **'

                Dim command As New MySqlCommand("INSERT INTO company_alert (stock_code, year_id, alert_value, created_by, created_date) VALUES (@stock_code, @year_id, @alert_value, @created_by, @created_date)", conn)

                command.Parameters.AddWithValue("@stock_code", stockCode.Text)
                command.Parameters.AddWithValue("@year_id", year.Text)
                command.Parameters.AddWithValue("@alert_value", total1.Text)
                command.Parameters.AddWithValue("@created_by", HttpContext.Current.Session("userid"))
                command.Parameters.AddWithValue("@created_date", Format(Now(), "yyyy-MM-dd HH:mm"))

                command.ExecuteNonQuery()
            End If

        Catch ex As Exception

        End Try

    End Sub

the problem is all the data generated did not insert to the database.

Write the procedure at back end and pass the parameters from front end. Its always easy to manage the code.

This article has been dead for over six months. Start a new discussion instead.