|
Data binding provides a way for developers to create a read/write link between the controls on a form and the data in the application. Data binding is used within applications to take advantage of data stored in databases. DataTable object is the representation of a table, with rows and columns, in ADO.NET. DataTable contains two collections: DataColumn , representing the columns of data in a given table (which ultimately determine the kinds of data that can be entered into that table), and DataRow , representing the rows of data in a given table
DataView provides a layer of indirection between the actual data and its display format, thereby enabling the programmer to apply sorts and filter rows without modifying the underlying information—that is, to have different “views” on the same data. The DataViewManager on the other hand represents a view on the entire DataSet. One of the most useful aspects of the DataView is the ability to create multiple DataView objects to provide different representations of the same data. The following simple example with three separate Grid View controls illustrates the same. Each DataView applies a different SQL filter expression using the RowFilter property and each of them contains only a subset of the full data in the DataTable. If a row is modified in one view, the changes appear automatically in all other views because, there is only one data source—the linked DataTable
Example: Demonstrate Multiple View
DataSynchronization.aspx
<% @ Page Language ="C#" AutoEventWireup ="true" CodeFile ="DataSynchronization.aspx.cs" Inherits ="DataSynchronization" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns ="http://www.w3.org/1999/xhtml" >
<head runat ="server">
</head >
<body >
<form id ="form1" runat ="server">
<div>
<strong> Displaying Multiple Views
</strong>
<br/>
< br />
<asp:GridView ID ="grdvStore" runat ="server" AutoGenerateColumns ="False" CellPadding ="4" ForeColor ="#333333" GridLines ="None">
< FooterStyle BackColor ="#1C5E55" Font-Bold ="True" ForeColor ="White" />
<Columns>
<asp:BoundField DataField ="stor_id" HeaderText ="Store ID" />
<asp:BoundField DataField ="stor_address" HeaderText ="Address" />
<asp:BoundField DataField ="city" HeaderText ="City" />
<asp:BoundField DataField ="state" HeaderText ="State" />
</Columns>
<RowStyle BackColor ="#E3EAEB" />
<EditRowStyle BackColor ="#7C6F57" />
<SelectedRowStyle BackColor ="#C5BBAF" Font-Bold ="True" ForeColor ="#333333" />
<PagerStyle BackColor ="#666666" ForeColor ="White" HorizontalAlign ="Center" />
<HeaderStyle BackColor ="#1C5E55" Font-Bold ="True" ForeColor ="White" />
<AlternatingRowStyle BackColor ="White" />
</asp:GridView>
< br />
<asp:Button ID ="Button1" runat ="server" OnClick ="Button1_Click" Text ="Displaying Multiple Views" />
< br />
< br />
<asp:GridView ID ="grdvSecond" runat ="server" AutoGenerateColumns ="False" BackColor ="LightGoldenrodYellow" BorderColor ="Tan" BorderWidth ="1px" CellPadding ="2" ForeColor ="Black" GridLines ="None">
<FooterStyle BackColor ="Tan" />
<Columns>
<asp:BoundField DataField ="stor_id" HeaderText ="Store ID" />
<asp : BoundField DataField ="stor_address" HeaderText ="Address" />
<asp : BoundField DataField ="city" HeaderText ="City" />
<asp : BoundField DataField ="state" HeaderText ="State" />
</Columns>
<SelectedRowStyle BackColor ="DarkSlateBlue" ForeColor ="GhostWhite" />
<PagerStyle BackColor ="PaleGoldenrod" ForeColor ="DarkSlateBlue" HorizontalAlign ="Center" />
<HeaderStyle BackColor ="Tan" Font-Bold ="True" />
<AlternatingRowStyle BackColor ="PaleGoldenrod" />
</asp:GridView>
<br/>
<asp:GridView ID ="grdvThird" runat ="server" AutoGenerateColumns ="False" BackColor ="LightGoldenrodYellow" BorderColor ="Tan" BorderWidth ="1px" CellPadding ="2" ForeColor ="Black" GridLines ="None">
<FooterStyle BackColor ="Tan" />
<Columns>
<asp:BoundField DataField ="stor_id" HeaderText ="Store ID" />
<asp:BoundField DataField ="stor_address" HeaderText ="Address" />
<asp:BoundField DataField ="City" HeaderText ="City" />
<asp:BoundField DataField ="state" HeaderText ="State" />
</Columns>
<SelectedRowStyle BackColor ="DarkSlateBlue" ForeColor ="GhostWhite" />
<PagerStyle BackColor ="PaleGoldenrod" ForeColor ="DarkSlateBlue" HorizontalAlign ="Center" />
<HeaderStyle BackColor ="Tan" Font-Bold ="True" />
<AlternatingRowStyle BackColor ="PaleGoldenrod" />
</asp:GridView>
</div>
</form>
</body>
</html>
DataSynchronization.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class DataSynchronization : System.Web.UI. Page
{
protected void Page_Load( object sender, EventArgs e)
{
string strConn = "Data Source=localhost;Initial Catalog= pubs; user Id=sa;Password = test " ;
string sqlQuery = "select * from stores" ;
SqlConnection conn = new SqlConnection (strConn);
SqlDataAdapter ada = new SqlDataAdapter (sqlQuery, conn);
DataSet dstStore = new DataSet ();
ada.Fill(dstStore, "Stores" );
grdvStore.DataSource = dstStore.Tables[ "Stores" ];
grdvStore.DataBind();
}
protected void Button1_Click( object sender, EventArgs e)
{
string strConn = "Data Source=localhost;Initial Catalog=pubs;user Id=sa;Password= test" ;
string sqlQuery = "select * from stores" ;
SqlConnection conn = new SqlConnection (strConn);
SqlDataAdapter ada = new SqlDataAdapter (sqlQuery, conn);
DataSet dstStore = new DataSet ();
ada.Fill(dstStore, "Stores" );
DataView dvFirst = new DataView (dstStore.Tables[ "Stores" ]);
DataView dvSecond = new DataView (dstStore.Tables[ "Stores" ]);
dvFirst.RowFilter = "state = 'CA'" ;
dvSecond.RowFilter = "state = 'WA'" ;
grdvSecond.DataSource = dvFirst;
grdvSecond.DataBind();
grdvThird.DataSource = dvSecond;
grdvThird.DataBind();
}
}
Output
 |