为什么我加载上bg()后就不能实现Button1_Click()和gidupdata()对数据的修改了
不加载bg(),Button1_Click()没问题。若gidupdata()中的id设为定值怎也能修改。后台:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        bg()
        bd() '在此处放置初始化页的用户代码
    End Sub'读取数据库
    Sub bg()           Dim sqlcon As New SqlConnection("server=I;uid=sa;pwd=as;database=jiagong")
        Dim ds As New DataSet
        sqlcon.Open()
        Dim sqld As New SqlDataAdapter("select * from fdinghuo  where shunxu=' 50' ", sqlcon)
        sqld.Fill(ds, "fuheban")
        dg.DataSource = ds.Tables("fuheban")
        dg.DataBind()
        sqlcon.Close()
        sqlcon = Nothing
        'Dim strsql As String
        'strsql = "select * from fdinghuo where shunxu='50' "
        'Dim sqlcon2 As New SqlConnection("server=I;uid=sa;pwd=as;database=jiagong")
        'Dim sqlcommand2 As New SqlCommand
        'Dim datareader2 As SqlDataReader
        'sqlcon2.Open()
        'sqlcommand2.Connection = sqlcon2
        'sqlcommand2.CommandText = strsql
        'datareader2 = sqlcommand2.ExecuteReader
        'While datareader2.Read
        '    ComboBox1.Text = datareader2.Item("sheng")
        '    ComboBox2.Text = datareader2.Item("shi")
        '    TextBox1.Text = datareader2.Item("tihuoriqi")
        '    Label2.Text = datareader2.Item("kehu")
        '    Label3.Text = datareader2.Item("riqi")
        '    Label4.Text = datareader2.Item("yewuyuan")
        'End While
        'sqlcon2.Close()
        'sqlcon2 = Nothing
        'sqlcommand2 = Nothing        'datareader2 = Nothing    End Sub
‘绑定
    Sub bd()
        Dim sqlcon As New SqlConnection("server=I;uid=sa;pwd=as;database=jiagong")
        Dim ds As New DataSet
        sqlcon.Open()
        'drop1()
        Dim sqld1 As New SqlDataAdapter
        sqld1.SelectCommand = New SqlCommand("select distinct sheng from fdinghuo  ", sqlcon)
        sqld1.Fill(ds, "sheng")
        ComboBox1.DataSource = ds.Tables("sheng").DefaultView
        ComboBox1.DataBind()
        sqlcon.Close()
        sqlcon = Nothing
        Dim sqlcon2 As New SqlConnection("server=I;uid=sa;pwd=as;database=jiagong")
        Dim ds2 As New DataSet
        sqlcon2.Open()        'drop1()
        Dim sqld2 As New SqlDataAdapter
        sqld2.SelectCommand = New SqlCommand("select distinct shi from fdinghuo  ", sqlcon2)
        sqld2.Fill(ds2, "shi")
        ComboBox2.DataSource = ds2.Tables("shi").DefaultView
        ComboBox2.DataBind()
        sqlcon2.Close()
        sqlcon2 = Nothing
    End Sub
’删除
    Sub griddelete(ByVal sender As Object, ByVal E As DataGridCommandEventArgs)
        Dim strid, strsql As String
        strid = dg.DataKeys.Item(E.Item.ItemIndex)
        strsql = "delete from fdinghuo where id='" & strid & "' "
        Dim sqlcon As New SqlConnection("server=i;uid=sa;pwd=as;database=jiagong")
        sqlcon.Open()
        Dim sqlcommand As New SqlCommand
        sqlcommand.Connection = sqlcon
        sqlcommand.CommandText = strsql
        sqlcommand.ExecuteNonQuery()
        sqlcon.Close()
        sqlcon = Nothing
        sqlcommand = Nothing
        dg.EditItemIndex = -1
        bg()    End Sub
    '编辑
    Sub gridedit(ByVal sender As Object, ByVal E As DataGridCommandEventArgs)
        dg.EditItemIndex = E.Item.ItemIndex        bg()
    End Sub
    '取消
    Sub gridcancel(ByVal sender As Object, ByVal E As DataGridCommandEventArgs)
        dg.EditItemIndex = -1
        bg()    End Sub    '修改
    Sub gridupdate(ByVal sender As Object, ByVal E As DataGridCommandEventArgs)
        Dim strid, strsql As String
        Dim introw As Integer
        Dim obj1, obj2, obj3, obj4, obj5, obj6, obj7, obj8, obj9, obj10, obj11, obj12, obj13, obj14, obj15, obj16, obj17 As TextBox
        introw = E.Item.ItemIndex
        obj1 = dg.Items(introw).Cells(1).Controls(0)
        Label6.Text = obj1.Text
        strid = dg.DataKeys.Item(introw)
        strsql = "update fdinghuo set yanse='" & obj1.Text & "' where id='" & strid & "'"
        Dim sqlcon As New SqlConnection("server=i;uid=sa;pwd=as;database=jiagong")
        sqlcon.Open()
        Dim sqlcommand As New SqlCommand
        sqlcommand.Connection = sqlcon
        sqlcommand.CommandText = strsql
        sqlcommand.ExecuteNonQuery()
        sqlcon.Close()
        sqlcon = Nothing
        sqlcommand = Nothing
        dg.EditItemIndex = -1
        bg()
    End Sub
‘修改
    Private Sub (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label5.Text = ComboBox2.Text
        Dim sqlcon As New SqlConnection("server=i;uid=sa;pwd=as;database=jiagong")
        Dim sqlcommand As New SqlCommand
        Dim sql As String        sql = "update fdinghuo set sheng='" & ComboBox1.Text & "',shi='" & ComboBox2.Text & "',tihuoriqi='" & TextBox1.Text & "'  where shunxu='50' "
        sqlcon.Open()
        sqlcommand.Connection = sqlcon
        sqlcommand.CommandText = sql
        sqlcommand.ExecuteNonQuery()
        sqlcon.Close()
        sqlcon = Nothing
        sqlcommand = Nothing
        bg()
    End Sub   

解决方案 »

  1.   

    if Not IsBackPost Then
            bg()
            bd() '在此处放置初始化页的用户代码
    End If不知道有没有用,试试吧
      

  2.   

    if Not IsBackPost Then
            bg()
            bd() '在此处放置初始化页的用户代码
    End If
    应当是这个吧,要!IsPostBack
      

  3.   

    VB中语法不太清楚,但是在C#中,应该增加
    if (!IsPostBack)
    {
      bg();
      bd();
    }
    这样在做gidupdate()操作时不会重新执行上面的语句,而是只执行gidupdate()方法中最后的bg()重新绑定。