Synchronize database operations (C#) : Edit Command Column « ADO.net Database « ASP.Net






Synchronize database operations (C#)

<%--
Beginning ASP.NET 1.0 with C# (Paperback)
by David Sussman, Chris Ullman, 
   Juan T. Llibre, John Kauffman, 
   Ollie Cornes, Ajoy Krishnamoorthy, 
   Srinivasa Sivakumar, Chris Goode, 
   Neil Raybould, Christopher Miller, 
   Rob Birdwell, Matt Butler, Gary Johnson 
   
# Publisher: Wrox Press; 1st edition (June 2002)
# Language: English
# ISBN: 1861007345
--%>

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script language="VB" runat="server">

  Sub Page_Load(Sender As Object, E As EventArgs)

    Dim strConnection As String
    Dim strSQL        As String
    Dim objDataSet    As New DataSet()
    Dim objConnection As OleDbConnection
    Dim objAdapter    As OleDbDataAdapter

    strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " & _
                    "Data Source="+MapPath("EmployeeDatabase.mdb")
    strSQL = "SELECT ID, FirstName, LastName FROM Employee;"

    objConnection = New OledbConnection(strConnection)
    objAdapter = New OledbDataAdapter(strSQL, objConnection)

    objAdapter.Fill(objDataSet, "Employees")

    dgNameList1.DataSource = objDataSet.Tables("Employees").DefaultView
    dgNameList1.DataBind()

' -----------------------------------------------------------------
    Dim objTable  As DataTable
    Dim objNewRow As DataRow
  
    objTable = objDataSet.Tables("Employees")
    objNewRow = objTable.NewRow()
    objNewRow("FirstName") = "Norman"
    objNewRow("LastName") = "Blake"
    objTable.Rows.Add(objNewRow)


    ' add another new row. We'll be deleting the one above later.
    ' we can't delete existing rows from the database because of
    ' referential integrity (every employee also has Orders)
    objNewRow = objTable.NewRow()
    objNewRow("FirstName") = "Kasey"
    objNewRow("LastName") = "Chambers"
    objTable.Rows.Add(objNewRow)


    ' bind the data grid to the new data
    dgNameList2.DataSource = objTable.DefaultView
    dgNameList2.DataBind()


    ' -----------------------------------------------------------------
    ' edit an existing row in the table
    Dim objRow As DataRow
    
    ' The Rows collection is 0 indexed, so this changes the fourth row
    objRow = objTable.Rows(3)
    objRow("FirstName") = "John"
    objRow("LastName") = "Hartford"

    ' bind the data grid to the new data
    dgNameList3.DataSource = objTable.DefaultView
    dgNameList3.DataBind()


    ' -----------------------------------------------------------------
    ' delete a row from the table

    ' The Rows collection is 0 indexed, so this removes the sixth row
    objTable.Rows(objTable.Rows.Count - 2).Delete()
    
    ' bind the data grid to the new data
    dgNameList4.DataSource = objTable.DefaultView
    dgNameList4.DataBind()


    ' =================================================================
    ' generate the update commands
    Dim objBuilder    As OleDbCommandBuilder

    objBuilder = New OleDbCommandBuilder(objAdapter)
    objAdapter.UpdateCommand = objBuilder.GetUpdateCommand()
    objAdapter.InsertCommand = objBuilder.GetInsertCommand()
    objAdapter.DeleteCommand = objBuilder.GetDeleteCommand()


    ' =================================================================
    ' update the data store
    objAdapter.Update(objDataSet, "Employees")
    
    
    ' =================================================================
    ' refresh the data in the DataReader and bind it to a new grid
    ' to prove that the data store has been updated

    strSQL = "SELECT ID, FirstName, LastName FROM Employee"
    objConnection.Open()
    Dim objCmd As New OleDbCommand(strSQL, objConnection)
    dgUpd.DataSource = objCmd.ExecuteReader(CommandBehavior.CloseConnection)
    dgUpd.DataBind()
  
  End Sub

</script>
<html>
 <body>
  <table width="100%">
   <tr>
    <td>Original Data</td>
    <td>Data with new Row</td>
    <td>Data with edited Row</td>
    <td>Data with deleted Row</td>
   </tr>
   <tr>
    <td valign="top"><asp:DataGrid id="dgNameList1" runat="server" /></td>
    <td valign="top"><asp:DataGrid id="dgNameList2" runat="server" /></td>
    <td valign="top"><asp:DataGrid id="dgNameList3" runat="server" /></td>
    <td valign="top"><asp:DataGrid id="dgNameList4" runat="server" /></td>
   </tr>
  </table>
  
  <hr />
  
  Data fetched from database after the update:<br/>
  
  <asp:DataGrid id="dgUpd" runat="server"/>
  
 </body>
</html>

           
       








EmployeeDatabase.zip( 10 k)

Related examples in the same category

1.asp:editcommandcolumn in action (VB.net)