protected void BindGrid()
{
   //绑定数据源 }
private void dataGridCat_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dataGridCat.EditItemIndex=(int)e.Item.ItemIndex;
BindGrid();
}
private void dataGridCat_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(Page.IsValid)
{
//更新数据
dataGridCat.EditItemIndex=-1;
BindGrid();
}
}
private void dataGridCat_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
                            //删除数据
dataGridCat.EditItemIndex=-1;
BindGrid();
}
//新建记录
protected void Create_Click(object sender,EventArgs e)
{
                            //添加记录
BindGrid();
}

解决方案 »

  1.   

    增:
    <%@ Page Language=VB Debug=true %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OLEDB" %>
    <script runat=server>
    Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
        If Not IsPostBack Then
            BuildDataList
        End If
    End Sub
    Sub Edit_Grid(sender As Object, e As DataGridCommandEventArgs)
        dgEmps.EditItemIndex = e.Item.ItemIndex
        BuildDataList
    End SubSub Update_Grid(ByVal Sender as Object, ByVal E as DataGridCommandEventArgs)
        Dim TheID as String
        Dim LastName as String
        Dim FirstName as String
        TheID = E.Item.Cells(2).Text
        LastName = CType(e.Item.Cells(0).Controls(0), TextBox).Text
        FirstName = CType(e.Item.Cells(1).Controls(0), TextBox).Text
        Dim DBConn as OleDbConnection
        Dim DBUpdate As New OleDbCommand
        DBConn = New OleDbConnection( _
            "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
            & "DATA SOURCE=" _
            & Server.MapPath("/tt/C4/DGDB.mdb;"))
        DBUpdate.CommandText = "Update Employees " _
            & "Set LastName = '" & LastName &"', " _
            & "FirstName = '" & FirstName & "' " _
            & "Where EmpID = " & TheID
        DBUpdate.Connection = DBConn
        DBUpdate.Connection.Open
        DBUpdate.ExecuteNonQuery()
        DBConn.Close
        dgEmps.EditItemIndex = -1
        BuildDataList
    End Sub
    Sub CommandAdd_Click(Sender As Object, E As CommandEventArgs)
        Dim DBConn as OleDbConnection
        Dim DBAdd As New OleDbCommand
        DBConn = New OleDbConnection( _
            "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
            & "DATA SOURCE=" _
            & Server.MapPath("/tt/C4/DGDB.mdb;"))
        DBAdd.CommandText = "Insert Into Employees (LastName) " _
            & "values ('')"
        DBAdd.Connection = DBConn
        DBAdd.Connection.Open
        DBAdd.ExecuteNonQuery()
        DBConn.Close
        dgEmps.EditItemIndex = 0
        BuildDataList
    End Sub
    Sub BuildDataList ()
            Dim DBConn as OleDbConnection
            Dim DBCommand As OleDbDataAdapter
            Dim DSPageData as New DataSet
            DBConn = New OleDbConnection( _
                "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
                & "DATA SOURCE=" _
                & Server.MapPath("/tt/C4/DGDB.mdb;"))
            DBCommand = New OleDbDataAdapter _
                ("Select * From Employees " _
                & "Order By LastName, FirstName", DBConn)
            DBCommand.Fill(DSPageData, _
                "Employees")
            dgEmps.DataSource = _
                DSPageData.Tables("Employees").DefaultView
            dgEmps.DataBind()
    End Sub
    </SCRIPT>
    <HTML>
    <HEAD>
    <TITLE>Adding Rows to a DataGrid Control</TITLE>
    </HEAD>
    <Body LEFTMARGIN="40">
    <form runat="server">
    <BR><BR>
    <asp:Label 
        id="lblMessage" 
        runat="server"
    />
    <BR><BR>
    <asp:datagrid
        id="dgEmps" 
        runat="server" 
        autogeneratecolumns="false"
        oneditcommand="Edit_Grid"
        onupdatecommand="Update_Grid"
        >
        <columns>
            <asp:boundcolumn 
                HeaderText="Last Name" 
                DataField="LastName"
            />
            <asp:boundcolumn 
                HeaderText="First Name" 
                DataField="FirstName"
            />
            <asp:boundcolumn 
                datafield="EmpID"
                visible=False
                readonly=true
            />
            <asp:editcommandcolumn
                 edittext="Edit"
                 updatetext="Update"
                 itemstyle-wrap="false"
                 headertext="Edit"
                 headerStyle-wrap="false"
            />
        </columns>
    </asp:datagrid>
    <BR><BR>
    <asp:LinkButton 
        id="butAdd" 
        text="Add" 
        commandname="Add"
        oncommand="CommandAdd_Click"
        runat="server"
    />
    </form>
    </BODY>
    </HTML>
      

  2.   

    删:
    <%@ Page Language=VB Debug=true %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OLEDB" %>
    <script runat=server>
    Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
        If Not IsPostBack Then
            BuildDataList
        End If
    End Sub
    Sub Click_Grid(ByVal Sender as Object, ByVal E as DataGridCommandEventArgs)
        Dim TheID as String
        TheID = E.Item.Cells(1).Text
        Dim DBConn as OleDbConnection
        Dim DBDelete As New OleDbCommand
        DBConn = New OleDbConnection( _
            "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
            & "DATA SOURCE=" _
            & Server.MapPath("/tt/C4/DGDB.mdb;"))
        DBDelete.CommandText = "Delete From Employees Where " _
            & "EmpID = " & TheID
        DBDelete.Connection = DBConn
        DBDelete.Connection.Open
        DBDelete.ExecuteNonQuery()
        DBConn.Close
        BuildDataList
    End Sub
    Sub BuildDataList ()
            Dim DBConn as OleDbConnection
            Dim DBCommand As OleDbDataAdapter
            Dim DSPageData as New DataSet
            DBConn = New OleDbConnection( _
                "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
                & "DATA SOURCE=" _
                & Server.MapPath("/tt/C4/DGDB.mdb;"))
            DBCommand = New OleDbDataAdapter _
                ("Select LastName & ', ' & FirstName " _
                & "as FullName, EmpID From Employees " _
                & "Order By LastName, FirstName", DBConn)
            DBCommand.Fill(DSPageData, _
                "Employees")
            dgEmps.DataSource = _
                DSPageData.Tables("Employees").DefaultView
            dgEmps.DataBind()
    End Sub
    </SCRIPT>
    <HTML>
    <HEAD>
    <TITLE>Removing Rows from a DataGrid Control</TITLE>
    </HEAD>
    <Body LEFTMARGIN="40">
    <form runat="server">
    <BR><BR>
    <asp:Label 
        id="lblMessage" 
        runat="server"
    />
    <BR><BR>
    <asp:datagrid
        id="dgEmps" 
        runat="server" 
        autogeneratecolumns="false"
        onitemcommand="Click_Grid"
    >
        <columns>
            <asp:boundcolumn 
                HeaderText="Full Name" 
                DataField="FullName"
            />
            <asp:boundcolumn 
                DataField="EmpID"
                Visible=False
            />
            <asp:buttoncolumn
                HeaderText="Click to Delete" 
                ButtonType="PushButton" 
                Text="Delete Record"
            />
        </columns>
    </asp:datagrid>
    </form>
    </BODY>
    </HTML>
      

  3.   

    修改:
    <%@ Page Language=VB Debug=true %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OLEDB" %>
    <script runat=server>
    Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
        If Not IsPostBack Then
            BuildDataList
        End If
    End Sub
    Sub Edit_Grid(sender As Object, e As DataGridCommandEventArgs)
        dgEmps.EditItemIndex = e.Item.ItemIndex
        BuildDataList
    End SubSub Update_Grid(ByVal Sender as Object, ByVal E as DataGridCommandEventArgs)
        Dim TheID as String
        Dim LastName as String
        Dim FirstName as String
        TheID = E.Item.Cells(2).Text
        LastName = CType(e.Item.Cells(0).Controls(0), TextBox).Text
        FirstName = CType(e.Item.Cells(1).Controls(0), TextBox).Text
        Dim DBConn as OleDbConnection
        Dim DBUpdate As New OleDbCommand
        DBConn = New OleDbConnection( _
            "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
            & "DATA SOURCE=" _
            & Server.MapPath("/tt/C4/DGDB.mdb;"))
        DBUpdate.CommandText = "Update Employees " _
            & "Set LastName = '" & LastName &"', " _
            & "FirstName = '" & FirstName & "' " _
            & "Where EmpID = " & TheID
        DBUpdate.Connection = DBConn
        DBUpdate.Connection.Open
        DBUpdate.ExecuteNonQuery()
        DBConn.Close
        dgEmps.EditItemIndex = -1
        BuildDataList
    End Sub
    Sub BuildDataList ()
            Dim DBConn as OleDbConnection
            Dim DBCommand As OleDbDataAdapter
            Dim DSPageData as New DataSet
            DBConn = New OleDbConnection( _
                "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
                & "DATA SOURCE=" _
                & Server.MapPath("/tt/C4/DGDB.mdb;"))
            DBCommand = New OleDbDataAdapter _
                ("Select * From Employees " _
                & "Order By LastName, FirstName", DBConn)
            DBCommand.Fill(DSPageData, _
                "Employees")
            dgEmps.DataSource = _
                DSPageData.Tables("Employees").DefaultView
            dgEmps.DataBind()
    End Sub
    </SCRIPT>
    <HTML>
    <HEAD>
    <TITLE>Editing Rows from a DataGrid Control</TITLE>
    </HEAD>
    <Body LEFTMARGIN="40">
    <form runat="server">
    <BR><BR>
    <asp:Label 
        id="lblMessage" 
        runat="server"
    />
    <BR><BR>
    <asp:datagrid
        id="dgEmps" 
        runat="server" 
        autogeneratecolumns="false"
        oneditcommand="Edit_Grid"
        onupdatecommand="Update_Grid"
        >
        <columns>
            <asp:boundcolumn 
                HeaderText="Last Name" 
                DataField="LastName"
            />
            <asp:boundcolumn 
                HeaderText="First Name" 
                DataField="FirstName"
            />
            <asp:boundcolumn 
                datafield="EmpID"
                visible=False
                readonly=true
            />
            <asp:editcommandcolumn
                 edittext="Edit"
                 updatetext="Update"
                 itemstyle-wrap="false"
                 headertext="Edit"
                 headerStyle-wrap="false"
            />
        </columns>
    </asp:datagrid>
    </form>
    </BODY>
    </HTML>