Presentation is loading. Please wait.

Presentation is loading. Please wait.

ASP.NET Part 3 Instructor: Charles Moen CSCI/CINF 4230.

Similar presentations


Presentation on theme: "ASP.NET Part 3 Instructor: Charles Moen CSCI/CINF 4230."— Presentation transcript:

1 ASP.NET Part 3 Instructor: Charles Moen CSCI/CINF 4230

2 State Management (Continued from last week)

3 3 State Management  Storing the data that your web application needs  The problems Thousands of users can be using the same web application at the same time, so we need to be concerned about having sufficient memory and keeping track of each user’s data All users of your web application communicate with it over a stateless HTTP connection  Five choices View state Query string Cookies Session state Application state ASP.NET (MacDonald)‏

4 4 Session Tracking in ASP.NET  Storing the data in a session object Stored in memory on the server Tracked by the server by using a unique identifier  Scope Global for your entire application for the current user Can be stored between visits by setting the Expires property  Lifetime Times out due to inactivity after a preset amount of time, usually 20 minutes Lost if the user closes and restarts the browser May be lost if the user opens the page in another browser window Session.Abandon() can end the session  Typical use Storing items in a shopping cart ASP.NET (MacDonald)‏

5 5 Session Example  Two pages that use a session for the user’s favorite color ASP.NET (MacDonald)‏ <asp:Button ID="submitButton" runat="server" onclick="submitButton_Click" Text="Submit" /> SecondPage.aspx

6 6 Session Example  Two pages that use a session for the user’s favorite color ASP.NET (MacDonald)‏ Default.aspx

7 7 Session Example ASP.NET (MacDonald)‏ public partial class _Default : System.Web.UI.Page { protected void submitButton_Click(object sender, EventArgs e) { string colorName = favoriteColorTextBox.Text; if (colorName != "") { Color favColor = new Color(colorName); Session["FavoriteColor"] = favColor; } public partial class SecondPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Color favColor = (Color)Session["FavoriteColor"]; if (favColor != null) { favoriteColorLabel.Text = "Favorite color = " + favColor.Name; } else { favoriteColorLabel.Text = "No favorite color"; } public class Color { private string name; public string Name { get { return name; } set { name = value; } } public Color(string name) { Name = name; }

8 8 C# Properties ASP.NET (MacDonald, Mayo)‏ public class Color { private string name; public string Name { get { return name; } set { name = value; } } public Color(string name) { Name = name; }  Properties are similar to member variables in a class  Easier to use and easier to code public class Color { private string name; public string getName() { return name; } public void setName(string value) { name = value; } public Color(string name) { this.name = name; } Color favColor = new Color("red"); Console.WriteLine(favColor.getName()); Traditional encapsulation with a member variableEncapsulating state with a property Color favColor = new Color("red"); Console.WriteLine(favColor.Name); Getters and setters are shorter

9 ADO.NET

10 10 ADO.NET  The.NET technology for interacting with a database A set of classes that are part of the.NET Framework  Two models of data access Connected – direct data access Disconnected – fetch the data and store it in memory  Not the same as “data binding” in ASP.NET, which is binding a control to a data source ASP.NET (MacDonald, Walther)‏

11 11 Three-Tier Architecture  A type of client-server architecture ASP.NET (MacDonald, Gittleman)‏ Presentation Tier Logic Tier Data Tier ADO.NET

12 12 Role of the Database  Relational database The most common way to store data for a web application Organizes data into tables, and each row in a table is called a record Each record must have a field called the primary key, which uniquely identifies the record A relationship between two tables can be created by storing the primary key of one table as a foreign key in another table Database Management System (DBMS) is the program that organizes, stores, and manages the data, e.g. MS Access, MS SQL Server, Oracle, MySQL  Most important web sites use data stored in a database Amazon.com – stores products, customers, orders Continental Airlines – stores flight schedules, reservations, frequent flyer miles Google – stores web page URLs, links, and keywords www.uhcl.edu ASP.NET (MacDonald)‏

13 13 Microsoft Access  Relational DBMS Microsoft product Bundled in some versions of MS Office Can be used for small web applications Available at UHCL  The databases that we use in this class are created by MS Access All the tables are stored in a single file named db.mdb You will need to use MS Access to create the tables for your project The db.mdb file can be downloaded or uploaded by FTP in binary mode For the homework project, consider putting your db.mdb file in a directory named “App_Data” stored in your app directory inside the “pages” directory ASP.NET‏

14 14 Microsoft Access Example Categories table Two fields, id and category The primary key is “id” ASP.NET‏

15 15 Microsoft Access Example MenuItems table Five fields, id, item, description, price, and category The primary key is “id” The “category” field is a foreign key from Categories ASP.NET‏

16 16 SQL  SQL is used for all database interaction through ADO.NET  SQL (Structured Query Language) Standard language for interacting with relational databases Four commonly used commands SELECT – retrieves a record UPDATE – modifies an existing record INSERT – adds a new record DELETE – deletes an existing record ASP.NET (MacDonald)‏

17 17 SQL Examples ASP.NET (MacDonald)‏ select id, category from Categories; Select all the records from the Categories table select * from MenuItems where category = 2; Select only the salad records from the MenuItems table

18 18 ADO.NET Classes  Three types of classes are used in ADO.NET  Connection Classes that encapsulate a connection to a database  Command Classes that are used to execute a command against a database  DataReader Classes that encapsulate the data retrieved from a database ASP.NET (MacDonald, Walther)‏

19 19 Implementations of ADO.NET Classes  The Connection, Command, and DataReader classes for particular DBMSs are separated into different namespaces  System.Data.SqlClient MS SQL Server 7.0 or higher  System.Data.OleDb Using an OLEDB driver; OleDbConnection, OleDbCommand, OleDbDataReader  System.Data.Odbc Using an ODBC driver  System.Data.OracleClient Oracle 8i or higher ASP.NET (MacDonald, Walther)‏

20 20 Direct Data Access Steps to query the database with direct data access 1. Create Connection, Command, and DataReader objects 2. Retrieve information from the database with the DataReader object and add it to a page 3. Close the connection 4. Send the page to the user agent as HTML ASP.NET (MacDonald)‏ using System.Data; using System.Data.OleDb; In your C# code, import the correct ADO.NET namespaces

21 21 Deli Menu Demo ASP.NET (MacDonald)‏  Use ASP.NET and Visual Studio 2008 to build a web application to display the results of a menu search by category using a DropDownList

22 22 Demo web.config ASP.NET (MacDonald)‏  Define the connection string in the web.config file so that it is available throughout your application NOTE: This is a partial file. Points to the App_Data folder inside your web application directory The alias that you can use in your code

23 23 Demo Default.aspx.cs ASP.NET (MacDonald)‏ using System; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.OleDb; using System.Web.Configuration; public partial class _Default : System.Web.UI.Page { private string connectionString = WebConfigurationManager.ConnectionStrings["Deli"].ConnectionString; Use the alias defined in web.config

24 24 Demo Page_Load ASP.NET (MacDonald)‏ protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string selectSql = "SELECT id, category FROM Categories "; OleDbConnection conn = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand(selectSql, conn); try { conn.Open(); OleDbDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { ListItem newItem = new ListItem(); newItem.Text = reader["category"].ToString(); newItem.Value = reader["id"].ToString(); categoriesDropDownList.Items.Add(newItem); } reader.Close(); } catch (Exception error) { resultsLabel.Text = "ERROR: " + error.Message; } finally { conn.Close(); } When the page loads, query the Categories table. For each record in the results, add a list item to the DropDownList

25 25 Demo categoriesDropDownList_SelectedIndexChanged ASP.NET (MacDonald)‏ protected void categoriesDropDownList_SelectedIndexChanged(object sender, EventArgs e) { if (IsPostBack) { string selectSql = "select * from MenuItems where category = " + categoriesDropDownList.SelectedValue; OleDbConnection conn = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand(selectSql, conn); OleDbDataReader reader; using (conn) { conn.Open(); reader = cmd.ExecuteReader(); StringBuilder sb = new StringBuilder(); sb.Append(" "); while (reader.Read()) { sb.Append(" "); sb.Append(reader["item"].ToString()); sb.Append(" "); sb.Append(reader["description"].ToString()); sb.Append(" "); sb.Append(reader["price"].ToString()); sb.Append(" "); } sb.Append(" "); resultsLabel.Text = sb.ToString(); } When the DropDownList selection changes, query the MenuItems table For each record that has a category value equal to the value of the list selection, add the record to the table as a row

26 26 References Ding, Wei, “ASP.NET” UHCL lecture slides, 2008. Gittleman, Art, Computing with C# and the.NET Framework. Jones and Bartlett Publishers, 2003. Lu, Dennis and Doug Rothaus, Microsoft (2002). “Best Practices for Using ADO.NET”. [Online]. Available: http://msdn.microsoft.com/en-us/library/ms971481.aspx MacDonald, Matthew, Beginning ASP.NET 3.5 in C# 2008: From Novice to Professional, Second Edition. Apress, 2007. Walther, Stephen. ASP.NET 3.5 Unleashed. SAMS, 2008. W3Schools Online Web Tutorials. “ASP.NET”. [Online]. Available: http://www.w3schools.com/aspnet/default.asp


Download ppt "ASP.NET Part 3 Instructor: Charles Moen CSCI/CINF 4230."

Similar presentations


Ads by Google