<%@ Import Namespace ="system.data" %>
<%@ Import Namespace ="system.data.oledb" %>
<script language ="vb" runat ="server">
    Dim conn As OleDbConnection
    Sub page_load(ByVal sender As Object, ByVal e As EventArgs)
        conn = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=D:\website\App_Data\wwwlink.mdb")
        If Not IsPostBack Then
            Call binddata()
        End If
    End Sub
    '单击编辑时执行该事件过程
    Sub mydatagrid_edit(ByVal Sender As Object, ByVal e As DataGridCommandEventArgs)
        MyDataGrid.EditItemIndex = CInt(e.Item.ItemIndex)
        Call binddata()
    End Sub
    '单击取消时执行该事件过程
    Sub mydatagrid_cancel(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
        mydatagrid.EditItemIndex = -1
        Call binddata()
    End Sub
    '单击更新时,执行该事件过程
    Sub mydatagrid_update(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
        Dim txtsitename, txturl, txtintro, txtgrade As TextBox
        txtsitename = e.Item.Cells(3).Controls(0)
        txturl = e.Item.Cells(4).Controls(0)
        txtintro = e.Item.Cells(5).Controls(0)
        txtgrade = e.Item.Cells(6).Controls(0)
        Dim strsql As String
        strsql = "Update link Set sitename='" & txtsitename.Text & "',URL='" & txturl.Text & "',intro='" & txtintro.Text & "',grade=" & CInt(txtgrade.Text) & ",submit_date=#" & Now() & "# Where link_id=" & MyDataGrid.DataKeys(CInt(e.Item.ItemIndex))
        Dim cmd As New OleDbCommand(strsql, conn)
        Dim exp As Exception
        Try
            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Close()
        Catch exp
            message.text = "发生错误,没有正常更新记录"
        End Try
        mydatagrid.edititemindex = -1
        Call binddata()
    End Sub
    '单击删除时执行该事件过程
    Sub mydatagrid_delete(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
        Dim strsql As String
        strsql = "delete from link where link_id=" & mydatagrid.DataKeys(CInt(e.Item.ItemIndex))
        Dim cmd As New OleDbCommand(strsql, conn)
        Dim exp As Exception
        Try
            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Close()
        Catch exp
            message.text = "发生错误,没有正常删除记录"
        End Try
        '重新绑定
        mydatagrid.EditItemIndex = -1
        Call binddata()
    End Sub
    '数据绑定子程序,供其它过程调用
    Sub binddata()
        '直接建立dataadapter
        Dim adp As New OleDbDataAdapter("select * from link order by submit_date DESC", conn)
        Dim ds As New DataSet()
        adp.Fill(ds, "link")
        mydatagrid.datasource = ds.Tables("link").DefaultView
        mydatagrid.databind()
    End Sub
</script>
<html>
<body>
<h4 align="center">网络导航</h4>
<center>
<a href="add.aspx">插入记录</a> 
<form id="Form1" runat="server">
<ASP:DataGrid id="MyDataGrid" Width="95%" HeaderStyle-BackColor="#aaaadd" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel" OnUpdateCommand="MyDataGrid_Update" OnDeleteCommand="MyDataGrid_Delete" DataKeyField="link_id" runat="server">
<Columns>
<asp:EditCommandColumn EditText="编辑" CancelText="取消" UpdateText="更新" ItemStyle-Wrap="false"/>
<asp:ButtonColumn Text="删除" CommandName="Delete" ItemStyle-Wrap="false"/>
</Columns>
</ASP:DataGrid>
<asp:Label id="message" runat="server"/>
</form>
</center>
</body>
</html>