|
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
<%@ 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.
|  |
 |  |  |
|
|
|
|