database applications - erie city school district · database applications . ... –ado.net is the...

46
McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. Chapter 10 Database Applications

Upload: buithien

Post on 29-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved.

Chapter 10

Database Applications

Page 2: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-2

Chapter Objectives

• Use database terminology correctly

• Create Windows and Web projects that display database data

• Display data in a DataGridView control

• Bind data to text boxes and labels

• Allow the user to select from a combo box or list box and display the corresponding record in data-bound controls

• Query an object using LINQ

Page 3: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-3

C# and Databases

• C# applications can display and update data from database files

• C# uses ADO.NET for database access – ADO.NET is the next generation of database

technology, based on Microsoft's previous version, ActiveX Data Objects (ADO)

– Information is stored and transferred in Extensible Markup Language (XML)

• ADO. NET allows access to database data in many formats

• This text uses Microsoft's SQL Server Express (SSE), which installs automatically with Visual Studio

Page 4: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-4

Database Terminology - 1

• A database file (from SQL Server Express

or Access) can hold multiple tables

• Table – Can be viewed as a spreadsheet

– Row (record) – Data for one item, person, or

transaction

– Column (field) – Stores an individual element

of data, such as account number, name,

address, etc.

• Primary key field – Uniquely identifies each record

Page 5: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-5

Database Terminology - 2

• Relational databases contain multiple

tables and relationships between tables

– Relationships keep data compact and easy to

maintain

• Whenever a database table is open, one

record is considered the current record

– The current record changes as you move

from one record to the next

Page 6: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-6

Database Terminology - 3

• Database table

example

Page 7: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-7

XML Data - 1

• XML is an industry-standard format for storing and transferring data

• The XML needed for accessing databases is automatically generated in C#

• Data stored in XML is text, identified by tags similar to HTML tags – Can be edited by any text editor program

• Tags in XML are not predefined as they are in HTML – Tags can identify fields by name

Page 8: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-8

XML Data - 2

• An XML data file is usually accompanied by a schema file – Schema describes the fields, data types, and any

constraints, such as required fields

– ADO.NET validates the data against the schema and checks for constraint violations

– Schema is also defined with XML tags and can be viewed or edited in a text editor

– An XML schema provides for strong data typing

• ADO.NET can treat the XML data as objects – Allows IntelliSense to provide information to the

programmer

Page 9: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-9

Using ADO.NET and C# - 1

• In C# display data from a database on a

Windows or Web Form

• Add controls to the form and bind data to the

controls

– Labels or text boxes

– Specialized controls designed just for data, such as a

DataGridView or a DataList

• Data handling and controls differ greatly for

Windows and Web applications

– Both will be covered in this chapter

Page 10: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-10

Using ADO.NET and C# - 2

• The DataGridView control is bound to a table in a dataset

• Data fields display automatically in the cells of the grid

Page 11: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-11

Data Access in Visual Studio - 1

• The Data Sources window provides an easy way to create data-bound controls on a form – Drag tables and fields from the window onto a form to create

controls that are bound to the data

• Display the data in a grid or in individual fields, referred to as Details

• Drag a field from the Data Sources window and drop on an existing control, which automatically sets up data binding

• Adding data-bound controls to a form: – Adds an .xsd file to the Solution Explorer window

– Adds BindingSource, TableAdapter, DataSet, and BindingNavigator objects to the component tray

Page 12: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-12

Data Access in Visual Studio - 2

• Overview of database objects – Binding source

• Establishes a link to the actual data—a specific file and/or server

– Table adapter • Handles retrieving and updating the data

• Generates SQL statements that are used to retrieve or update data

– Dataset • Contains the actual data and may come from multiple binding

sources and/or multiple table adapters

– Binding navigator • A toolbar that provides for database navigation and updating

Page 13: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-13

Binding Sources

• Object establishes a link from a specific

file or database to the program

• Use a wizard to automatically create

BindingSource objects

– Add new BindingSource objects using the

Data Sources window or the Data menu

Page 14: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-14

Table Adapters

• Does all the work of passing data back and forth between a data source (the binding source) and a program (the dataset)

– Data does not have to be from a database

– Data can be text file, object, or an array

• Transfers data from the source to the dataset (fills) or from the dataset back to the source (updates) via XML

Page 15: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-15

Datasets

• Temporary set of data stored in memory

– Datasets are disconnected, the copy of data

in memory does not keep an active

connection to the data source

• Dataset may contain multiple tables and

relationships

• Any controls bound to the dataset will

automatically fill with data

Page 16: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-16

Creating a Database Application - 1

• Start a New Project

• Add a DataGridView control to the form to display the data

– Click the Smart Tag arrow

– Drop down the list for Choose Data Source

– Select Add Project Data Source which activates the Data Source Configuration Wizard

– Select Database

Page 17: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-17

Creating a Database Application - 2

– Select New Connection

• Set up the connection for the binding source object

– In the Add Connection dialog box set the Data

source and browse to the database file

• Open and test the connection

– Follow wizard prompts to add the database

file to the project (makes the project portable)

Page 18: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-18

Creating a Database Application - 3

• Run the Data Application

• Examine the Components

• Format the DataGridView

– Click on the DataGridView and click on the Smart Tag arrow

– Select Edit Columns • Add, remove and reorder columns

• Set HeaderText, ToolTip Text and other properties

• Run the Application

Page 19: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-19

The Grid’s Smart Tag

• Use the smart tag to:

– Edit properties of grid columns

– Add and edit columns

– Dock the grid in its parent container (the form)

• Allows grid to fill form, even if form is resized

Page 20: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-20

The Database Schema File

• An .xsd file is added to the Solution Explorer for each new data source added to a project

• Contains the XML schema definition, the description and properties of the data – Names of tables and fields,

primary keys, and the table relationships

• At the bottom of the schema appears the TableAdapter for the table – Handles the Fill and GetData

methods for the table

Keys

TableAdapter

Page 21: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-21

Binding Individual Data Fields - 1

• Table fields from the dataset can be bound to

many types of controls

– i.e. labels, text boxes, combo boxes, check boxes

• Controls that are connected to fields are referred

to as bound controls or data-bound controls

• Create bound controls using the automatic

binding features of the Data Sources window

– Drag the table to the form

– Creates individual text box controls for each field of

data and a navigation control

Page 22: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-22

Binding Individual Data Fields - 2

• Each text box is

bound to one field

from the table

• As the user clicks

the navigation

buttons, all controls

change to display

the data for the

next record

Navigation buttons

Page 23: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-23

The Data Sources Window

• Select Show Data Sources from Data menu to display

– Add a new data source

– Click on the table name and select Details from the drop-down list

– The table's icon changes from a grid to indicate details

Page 24: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-24

Selecting Records from a List

• Instead of providing

navigation from one

record to the next,

allow the user to

select a record from

a drop-down list

– The rest of the fields

will fill with data

elements for the

selected record

Select a last name from the drop-down list

Page 25: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-25

Converting to Combo

Box Selection - 1

• In the Data Sources

window click on the

LastName field

– Select ComboBox from the

list

• Drag the LastName field

from the Data Sources

window to the form

– Creates a Combo Box control

and label

Page 26: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-26

Converting to Combo

Box Selection - 2

Use the combo box smart tag to set up data binding

Select Use data bound items to display the binding choices

Drop down list to select the binding source

Select the field to display in the list

Page 27: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-27

Selecting Fields from the Table

• When you create the Data Source

– Choose Add New Data Source option from the Data

menu or the Data Sources window

– In the Choose Your Database Objects section of the

Configuration wizard

• Expand the Tables node and place a check mark on just the

fields needed

• After the Data Source is created

– Select the dataset in the Data Sources window

– Click the Configure DataSet Wizard button

• Follow same steps as above

Page 28: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-28

Sorting the List Data - 1

• Cannot sort a data-bound list using the

Sorted property of the control

• Sort the data in the Select query

– Double-click the dataset’s schema file in the

Solution Explorer (.xsd file)

– In the displayed schema, click on

Fill,GetData()

– Click on the Property button (…) for the

CommandText property

Page 29: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-29

Sorting the List Data - 2

Schema file

Click on the Fill command

View the Select query in the pop-up data tip

SELECT query in Command-Text property

Page 30: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-30

Sorting the List Data - 3

– Modify the SQL SELECT command

• Drop down the Sort Type list and choose Ascending or Descending

(or type directly into the SELECT statement)

• SQL statement changes to include an ORDER BY clause

Page 31: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-31

Choosing the Control Type for Fields

• Dragging a Details view to a form displays

text boxes by default for text fields

• Click a field name and choose a control

type in the Data Sources window

– Choose the control type for all controls and

then drag the table to the form to create the

Details view

Page 32: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-32

Selecting Records Using Web Forms

• Web controls are considerably different from their Windows counterparts

• Web-based database applications have additional security issues

• Web database applications operate differently than Windows applications due to the nature of Web pages in a client/server environment

• Web pages are stateless—each time a page displays it is a new “fresh” page

• Each time the user makes a selection from a list a postback occurs and the Web page redisplays with only the selected data

Page 33: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-33

Security in Web Database Applications

• Security is much tighter for Web database

applications than for Windows applications

• Require user authentication and set

permission levels, if setting up a Web

application that displays or allows

modification to data

• Visual Studio integrates security features,

which are generally strict by default

Page 34: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-34

Creating the Web

Selection Application - 1

• Web version of the selection program

must have two data sources

– Drop-down list has a separate data source

from the one used for the individual fields

• Begin a new Web site

– Copy the database file into the project’s

App_Data folder

Page 35: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-35

Creating the Web

Selection Application - 2

• Set up the drop-down list – Add a DropDownList control

– In the smart tag select Choose Data Source

– In the wizard, drop down the list for Select a data source and select New data source

– Select Database

– Click on the New Connection button

– In the Add Connection dialog box, browse to the database file

– Select the data fields for the dataset for the drop-down list on the Configure the Select Statement page

Page 36: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-36

Creating the Web

Selection Application - 3

– Click on the ORDER BY button

• Select LastName to sort by

– On the Choose a Data Source page,

LastName should be selected for both the

data to display and the value of the field

– Select Enable AutoPostBack in the smart tag

for the drop-down list control

• An important step necessary to select and display

the data for the selected customer

Page 37: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-37

Creating the Web

Selection Application - 4

Select the fields to include in the dataset

Click the ORDER BY button to define a sort

Page 38: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-38

Creating the Web

Selection Application - 5

• Set up the additional fields – Add a DetailsView control to the Web page

– In the smart tag, select New data source from the Choose a Data Source list

– Select Database and select the connection for the database file that is already created

– Configure the Select Statement • Click on the box for all columns (*)

• Click the WHERE button

• In the Add WHERE Clause dialog box set up the parameter used to select the correct data for the fields

– Save all

Page 39: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-39

Creating the Web

Selection Application - 6

• Run the Application

– Press Ctrl + F5 to test the application

– Make selections from the list

• Data fields should change to match selection

Page 40: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-40

Make the Project Portable

• Open the Web.config file from the Solution

Explorer

– Scroll to find the entry for the connection

string

– Replace the path (not the file-name) with

|DataDirectory|

• Close the project, copy the complete folder

to move it to another location

Page 41: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-41

LINQ

• Language-Integrated Query (LINQ)

• General-purpose query language that can ask a question of any data – Object, database or XML

– Data source can be a database or any collection such as an array or list box collection

• LINQ to SQL component – Converts database items to objects

• LINQ to XML component – Converts XML document collections to objects

Page 42: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-42

Setting up a Query - 1

• Standard operators, regardless of data source

– Primary operators in a query • from, in, where and select

• LINQ Query – General Form variableName = from itemName in objectName select fieldName |list of Fields| items

– variableName does not need a data type assigned

– The compiler can assign a type in a process called type inference

• Allows LINQ operators order by and where to be used on unspecified data types

Page 43: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-43

Setting up a Query - 2

• The LINQ Query Example var belowMinimumQuery =

from an Item in amountDecimal

where an Item < 100m

select an Item;

• amountDecimal is an array, anItem is a single element not declared elsewhere

• Query is similar to a foreach

– Steps through the array, assigns each element to anItem and performs a comparison

Page 44: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-44

LINQ to SQL - 1

• A LINQ query can be applied to a

relational database

– Add a “LINQ to SQL Classes” template to a

database project

– Creates a strongly typed DataContext class

– A new design surface with two panes appears

in the Document window

– Drag database tables from the Server

Explorer to the design surface

Page 45: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-45

LINQ to SQL - 2

• Tables added to the left pane are referred to as entities

• Right pane holds optional stored procedures or methods

• Refer to the DataContext when writing the code

– Once the DataContext class is created, create a DataContext object in code

– Query the database using the LINQ operators

Page 46: Database Applications - Erie City School District · Database Applications . ... –ADO.NET is the next generation of database ... schema file –Schema describes the fields, data

McGraw-Hill © 2010 The McGraw-Hill Companies, Inc. All rights reserved. 10-46

LINQ to SQL - 3