Link to home
Start Free TrialLog in
Avatar of msout
msout

asked on

update gridview row programmatically

I have an SQL 6.5 server database table. I need to update row this is my code
Public Sub BindGrid()
       
        Dim ds As DataSet = Regulated.GetRegulatedParameters
        Dim dtParams As DataTable = ds.Tables(0)

        Session("dtParams") = dtParams

        Gridview1.DataSource = Session("dtParams")
        Gridview1.DataBind()
    End Sub
Protected Sub Gridview1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)

        Dim dt = CType(Session("dtParams"), DataTable).
        Dim row = Gridview1.Rows(e.RowIndex)
        dt.Rows(row.DataItemIndex)("ParameterId") = (CType(row.FindControl("lblParameterId"), Label)).Text
        dt.Rows(row.DataItemIndex)("ParamName") = (CType(row.FindControl("txtParamName"), TextBox)).Text
        dt.Rows(row.DataItemIndex)("mnemonic") = (CType(row.FindControl("txtmnemonic"), TextBox)).Text
        dt.Rows(row.DataItemIndex)("Condition1Min") = (CType(row.FindControl("txtCondition1Min"), TextBox)).Text
        dt.Rows(row.DataItemIndex)("Level1Min") = (CType(row.FindControl("txtLevel1Min"), TextBox)).Text
        dt.Rows(row.DataItemIndex)("Condition0Min") = (CType(row.FindControl("txtCondition0Min"), TextBox)).Text
        If (CType(row.FindControl("txtLevel0Min"), TextBox)).Text <> "" Then
            dt.Rows(row.DataItemIndex)("Level0Min") = (CType(row.FindControl("txtLevel0Min"), TextBox)).Text
        Else
            dt.Rows(row.DataItemIndex)("Level0Min") = DBNull.Value
        End If

        dt.Rows(row.DataItemIndex)("Condition0Max") = (CType(row.FindControl("txtCondition0Max"), TextBox)).Text
        If (CType(row.FindControl("txtLevel0Max"), TextBox)).Text <> "" Then
            dt.Rows(row.DataItemIndex)("Level0Max") = (CType(row.FindControl("txtLevel0Max"), TextBox)).Text
        Else
            dt.Rows(row.DataItemIndex)("Level0Max") = DBNull.Value
        End If
        dt.Rows(row.DataItemIndex)("Condition1Max") = (CType(row.FindControl("txtCondition1Max"), TextBox)).Text
        If (CType(row.FindControl("txtLevel1Max"), TextBox)).Text <> "" Then
            dt.Rows(row.DataItemIndex)("Level1Max") = (CType(row.FindControl("txtLevel1Max"), TextBox)).Text
        Else
            dt.Rows(row.DataItemIndex)("Level0Max") = DBNull.Value
        End If
       

        If (CType(row.FindControl("txtMCL"), TextBox)).Text <> "" Then
            dt.Rows(row.DataItemIndex)("Level1Max") = (CType(row.FindControl("txtMCL"), TextBox)).Text
        Else
            dt.Rows(row.DataItemIndex)("MCL") = DBNull.Value
        End If

        Gridview1.EditIndex = -1
        BindGrid()
    End Sub
I do not get any error messages but it does not update the record.
What am I doing wrong?

Thank you in advance

Avatar of gamarrojgq
gamarrojgq

Hi,

You are getting your data from Regulated.GetRegulatedParameters, but when you Update the changes, you are updating the datatable in  Session("dtParams"), but after that you call agin the BindGrid SUB, so it gets agina the data from Regulated.GetRegulatedParameters, and since you have not update the data that Regulated.GetRegulatedParameters returns, you will get the same old data.

Your changes are just deleted.

You have to update your Datasource as well in order to get your code function well.

Or you can use Regulated.GetRegulatedParameters just the first time and wordk with Session("dtParmas") only, but it will depends on your application needs
Avatar of msout

ASKER

Wonderful!!!! Thank you!!!!
ASKER CERTIFIED SOLUTION
Avatar of gamarrojgq
gamarrojgq

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial