• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 774
  • Last Modified:

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

0
msout
Asked:
msout
  • 2
1 Solution
 
gamarrojgqCommented:
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
0
 
msoutAuthor Commented:
Wonderful!!!! Thank you!!!!
0
 
gamarrojgqCommented:
Glad to help, don't forget to accept the solution
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now