ASP.Net/ADO.net Database/DataGrid Delete

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Bind asp:datagrid delete action to asp:linkbutton

<%@ 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 DataList_Delete(sender As Object, e As DataListCommandEventArgs)
    Dim TheID as String
    TheID = CType(e.Item.FindControl("lblID"), Label).Text
    Dim DBConn as OleDbConnection
    Dim DBDelete As New OleDbCommand
    DBConn = New OleDbConnection( _
        "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
        & "DATA SOURCE=" _
        & Server.MapPath("EmployeeDatabase.mdb;"))
    DBDelete.rumandText = "Delete From Employee Where " _
        & "ID = " & 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("EmployeeDatabase.mdb;"))
        DBCommand = New OleDbDataAdapter _
            ("Select ID, FirstName, LastName " _
            & "From Employee " _
            & "Order By FirstName", DBConn)
        DBCommand.Fill(DSPageData, _
            "Employee")
        dlDepts.DataSource = _
            DSPageData.Tables("Employee").DefaultView
        dlDepts.DataBind()   
End Sub
</SCRIPT>
<HTML>
<HEAD>
<TITLE>Removing Rows from a DataList Control</TITLE>
</HEAD>
<Body LEFTMARGIN="40">
<form runat="server">
<BR><BR>
<asp:Label 
    id="lblMessage" 
    Font-Size="12pt"
    Font-Bold="True"
    Font-Name="Lucida Console"
    text="Below is a list of all the Employee"
    runat="server"
/>
<BR><BR>
<asp:datalist 
    id="dlDepts" 
    runat="server" 
    OnDeleteCommand="DataList_Delete"
    gridlines="Both"
    backcolor="lightyellow"
    forecolor="darkred"
>
    <itemtemplate>
        <B>Department: </B>
        <asp:label
            id="lblID"
            runat="server"
            text="<%# DataBinder.Eval(Container.DataItem, "ID") %>"
            visible="False"
        />
        <%# DataBinder.Eval(Container.DataItem, "FirstName") _
            & " - " _
            & DataBinder.Eval(Container.DataItem, "LastName") 
         %>
         <asp:LinkButton 
             id="butDelete" 
              Text="Delete" 
              CommandName="Delete"
              runat="server"
          />
    </itemtemplate>
</asp:datalist>
</form>
</BODY>
</HTML>


<A href="http://www.nfex.ru/Code/ASPDownload/EmployeeDatabase.zip">EmployeeDatabase.zip( 10 k)</a>


Delete record through asp:datagrid

<%@ 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("EmployeeDatabase.mdb;"))
    DBDelete.rumandText = "Delete From Employee Where " _
        & "ID = " & 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("EmployeeDatabase.mdb;"))
        DBCommand = New OleDbDataAdapter _
            ("Select LastName & ", " & FirstName " _
            & "as FullName, ID From Employee " _
            & "Order By LastName, FirstName", DBConn)
        DBCommand.Fill(DSPageData, _
            "Employee")
        dgEmps.DataSource = _
            DSPageData.Tables("Employee").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="ID"
            Visible=False
        />
        <asp:buttoncolumn
            HeaderText="Click to Delete" 
            ButtonType="PushButton" 
            Text="Delete Record"
        />
    </columns>
</asp:datagrid>
</form>
</BODY>
</HTML>


<A href="http://www.nfex.ru/Code/ASPDownload/EmployeeDatabase.zip">EmployeeDatabase.zip( 10 k)</a>