E:\web\learnaspcom\htdocs\freebook\learn\ubtoc.xml LearnAsp.com - ASP ASP.net Free Lessons
Search Search

#1 worldwide
FREE Coding Lessons

since 1996
   THE BEST WAY to learn ASP & Asp.net!
Advertise Here!
click for details
Credits Host:
DiscountASP.net
Server Admin:
The "Team"
Contact Info.
Charles M. Carroll
<Asp.net blog>
<personal site>
xxx

Northwind Record Editing Sample by Scott Cate

This page demonstrates one approach to make a form that implements record editing. This example uses a Access/OLEDB data source.

An example using SQL7/2000 will appear soon.

   filename=/experiments/dbfull/northwind.aspx

<Test Script Below>



<%@ Debug="True"%>
<%@ Import Namespace="System.data" %>
<%@ Import Namespace="System.data.oleDB" %>

<script runat="Server">
Dim strConn as String=replace(ConfigurationSettings.AppSettings("northwind"),"northwind.mdb",server.mappath("northwind.mdb"))
'Add the following to your web.config file
'<appSettings>
' <add key="northwind" value="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=northwind.mdb;" />
'</appSettings>
Sub Page_Load
    If not IsPostBack Then
        doDatabind ("")
    End IF

    'Turn on/off Edit Columns
    If 1=2 THen
        myDatagrid.Columns(1).visible = False
    End IF

End Sub

Sub doDatabind (addSQL as String)
    trace.write ("Connection String",strConn )

    Dim strSQL as String = "Select ProductID, ProductName, UnitPrice from Products " & addSQL
    
    trace.write ("SQL",strSQL )

    Dim objConn as New OleDBConnection(strConn)
    Dim objCmd as New OLEDBCommand(strSQL, objConn)
    objConn.open
    myDataGrid.DataSource = objCmd.ExecuteReader()
    DataBind
    objConn.Close
End Sub

Sub doEdit (s as Object, e as DataGridCommandEventArgs )
    Dim ProductID as Integer
    ProductID = myDatagrid.datakeys (e.item.itemindex )
    myDataGrid.EditItemIndex = 0
    myDataGrid.BackColor = System.Drawing.Color.Aqua
    doDataBind(" where ProductID = " & ProductID)
End Sub

Sub doCancel (s as Object, e as DataGridCommandEventArgs )
    myDataGRid.EditItemIndex = -1
    myDataGrid.BackColor = System.Drawing.Color.White
    doDataBind("")
End Sub

Sub doUpdate (s as Object, e as DataGridCommandEventArgs )
    dim ProductID as Integer
    Dim ProductName as String
    Dim ProductPriceTextBox as textbox
    Dim ProductNameTextBox as textbox

    ProductID = MyDataGrid.DataKeys ( e.item.itemindex )
    ProductNameTextBox = e.item.cells(0).controls ( 1 )
    ProductPriceTextBox = e.item.cells(0).controls ( 3 )

    Dim strSQL as String = _
    "Update Products Set ProductName='" & _
    ProductNameTextBox.Text.Replace("'","''") & "', " & _
    "UnitPrice='" & cDBL(ProductPriceTextBox.Text.Replace("'","''") ) & _
    "' WHERE ProductID=" & cInt(ProductID)
    
    Dim objConn as New OleDBConnection(strConn)
    Dim objCmd as New OLEDBCommand(strSQL, objConn)

    objConn.open
    objCmd.ExecuteNonQuery()
    objConn.Close

    myDataGrid.BackColor = System.Drawing.Color.White
    myDataGRid.EditItemIndex = -1
    doDataBind("")
End Sub

</Script>

<Form runat="Server">
<ASP:Datagrid
  autoGenerateColumns = "False"
  id="myDataGrid"
  datakeyfield="ProductID"
  onEditCommand = "doEdit"
  onCancelCommand = "doCancel"
  onUpdateCommand = "doUpdate"
  ShowHeader = "False"
  runat="Server">

  <Columns>

    <ASP:TemplateColumn>

      <ItemTemplate> <table><tr><td><B>Product Name:</B></td><td>
        <%# container.DataItem ("ProductName") %></td></tr><tr><td><b>UnitPrice</b></td>
        <td><%# container.DataItem ("UnitPrice") %></td></tr></table>
      </ItemTemplate>

      <EditItemTemplate> <table><tr><td><B>Product Name:</B></td><td>
        <ASP:textbox text='<%# container.DataItem ("ProductName") %>'
          runat="server" />
        </td></tr><tr><td><b>UnitPrice:</b></td><td>
        <ASP:textbox text='<%# container.DataItem ("UnitPrice") %>'
          runat="server" />
        </td></tr></table>
      </EditItemTemplate>
    </ASP:TemplateColumn>
    <ASP:EditCommandCOlumn buttontype="PushButton" EditText="Edit!" UpdateText="Update" 
CancelText="Cancel"/>
  </Columns>
</ASP:Datagrid>
</form>
There are many worthy charities!!. But perhaps help starving children in Africa or South America AND help Charles too. a $5 tip buys him lunch at McDonalds, a $20 tip buys his kid Hitoshi a new computer game, a $39 tip buys his daughter Michiko a few nice outfits. See our donor list.