DataGrid更新不了数据的问题!

由于网页上的按钮(AutoPostBack=true),点击过后就会先调用Page_Load事件,由于Page_Load中有DateBind方法,每次输入的新数据就会被数据库中的旧数据代替,所以要在Page_Load中做判断:如果页面更新了的话那么就不重新绑定(重新绑定会把新数据替换掉),如果页面没有更新那么就重新绑定

例:

        ShowData.DataSource = dt_Stu_union  ’ShowData为DataGrid,dt_Stu_union 为DataTable
        If IsPostBack = False Then
            ShowData.DataBind()
        End If

    Private Sub ShowData_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles ShowData.UpdateCommand
        Dim tem(3) As String
        Dim dr As DataRow
        dr = dt_Stu_union.NewRow()
        '将数据保存到一个数组里
        tem(0) = CType(e.Item.Cells(1).Controls(0), TextBox).Text'//e.item.Cells(n).Contols(0)这里的n是DataGrid的列号,如果是1就是第一列,如果有修改和删除按钮的话,也要把这两列算在其中加上!如果这两列是在显示数据的后面的话都无所谓了!

        tem(1) = CType(e.Item.Cells(2).Controls(0), TextBox).Text
        tem(2) = CType(e.Item.Cells(3).Controls(0), TextBox).Text
        tem(3) = CType(e.Item.Cells(4).Controls(0), TextBox).Text
        '删除旧数据
        dt_Stu_union.Rows(e.Item.ItemIndex).Delete()

        '添加新数据
        dr(0) = tem(0)
        dr(1) = tem(1)
        dr(2) = tem(2)
        dr(3) = tem(3)
        dt_Stu_union.Rows.Add(dr)

        '更新数据库
        Dim db As New SqlClient.SqlCommandBuilder(da_Stu_union)

        Modu.cnn.Open()
        da_Stu_union.Update(dt_Stu_union)
        dt_Stu_union.AcceptChanges()
        Modu.cnn.Close()
        '关闭修改状态
        ShowData.EditItemIndex = -1
        '数据绑定
        ShowData.DataSource = dt_Stu_union
        ShowData.DataBind()
    End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值