Preferred Language:
Listing 17.27 - ShowDataAdapterUpdate.aspx
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Web.Configuration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private SqlDataAdapter dad;
private DataTable dtblMovies;
void Page_Load()
{
// Create connection
string connectionString = WebConfigurationManager.ConnectionStrings["Movies"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
// Create Select command
dad = new SqlDataAdapter("SELECT Id,Title,Director FROM Movies", con);
// Create Update, Insert, and Delete commands with SqlCommandBuilder
SqlCommandBuilder builder = new SqlCommandBuilder(dad);
// Add data to DataTable
dtblMovies = new DataTable();
dad.Fill(dtblMovies);
// Bind data to Repeater
rptMovies.DataSource = dtblMovies;
rptMovies.DataBind();
}
protected void lnkUpdate_Click(object sender, EventArgs e)
{
// Update DataTable with changes
for (int i=0; i < rptMovies.Items.Count;i++)
{
RepeaterItem item = rptMovies.Items[i];
TextBox txtTitle = (TextBox)item.FindControl("txtTitle");
TextBox txtDirector = (TextBox)item.FindControl("txtDirector");
if (dtblMovies.Rows[i]["Title"] != txtTitle.Text)
dtblMovies.Rows[i]["Title"] = txtTitle.Text;
if (dtblMovies.Rows[i]["Director"] != txtDirector.Text)
dtblMovies.Rows[i]["Director"] = txtDirector.Text;
}
// Set batch size to maximum size
dad.UpdateBatchSize = 0;
// Perform update
int numUpdated = dad.Update(dtblMovies);
lblResults.Text = String.Format("Updated {0} rows", numUpdated);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Show DataAdapter Update</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater
id="rptMovies"
EnableViewState="false"
Runat="server">
<HeaderTemplate>
<table>
<tr>
<th>Title</th><th>Director</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:TextBox
id="txtTitle"
Text='<%#Eval("Title")%>'
Runat="server" />
</td>
<td>
<asp:TextBox
id="txtDirector"
Text='<%#Eval("Director")%>'
Runat="server" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<br />
<asp:LinkButton
id="lnkUpdate"
Text="Update Movies"
Runat="server" OnClick="lnkUpdate_Click" />
<br /><br />
<asp:Label
id="lblResults"
EnableViewState="false"
Runat="server" />
</div>
</form>
</body>
</html>
Need ASP.NET and Visual Studio 2008 Training?
- Learn ASP.NET 3.5 from Stephen Walther, author of ASP.NET 3.5 Unleashed.
We've provided ASP.NET training for NASA, Lockheed Martin, the National Science Foundation, Verizon,
Boeing, the US House of Representatives, Kaiser, Petco, Mary Kay, and Microsoft.
Why not your company?
-
Receive a four day, hands-on, intensive workshop.
-
We fly to you, anywhere in the world.
-
We can bring our own laptops.
To learn more, visit the
Superexpert Training website.