Chapter 14.3 LINQ to SQL Programming in Visual Basic 2010: The Very Beginner’s Guide by Jim...

Preview:

Citation preview

Chapter 14.3

LINQ to SQL

Programming in Visual Basic 2010:The Very Beginner’s Guide

by Jim McKeown

Databases – Part 3

Customer Queries

• Sometimes there’s just too much data• Queries look through a database and retrieve

data that matches the search criteria• Queries find records that match the search,

display selected fields in the results and order the records for easy reference

• Use a DataGridView to demonstrate a query

Query

search or searches in a database;

return specified fields from selected records and

display them in a specific order2

Database File for this Part

We need the Customers database file

See my web page.

Download and open and look at it. Close it.

3

Customer Queries

Create a new form

Name the controls

Add a DataGridView (I used a form)

4

Tasks – Build the Connections, etc.

See grid in book and create form from it, if you wish.

Or use the DataGridView control from the toolbox in lieu of the form and controls we’re used to.

If you use controls, name Controls and Labels,…

Either will be okay.

Electing to do the form is a bit more work; when electing the datagridview, some things are done for you…

The slides ahead are for Forms: Add Binding Source from Toolbox (Category: Data)

Name it bdsCustomer in Name Property

Add DataSource property

via drop down….

Goto next slide5

(except this one)If using DataGridView in lieu of FormIf using DataGridView in lieu of form, there are a few differences.

Here are a few…

select DataGridView control.

Click on play

Choose Data Source

can select WagesDataSetBinding

Links WagesDataSet and WagesDataSetBinding in component tray

Select WagesDataSetBindingSource

See properties DataSource (linked to WagesDataSet)

Select DataMember; select tblWages

Note: grid modified and has fields. Expand.

Fill form space up with grid…

6

Tasks

Add Project Data Source items…

Database, dataset, New Connection, Change, (Microsoft Access Database File), Browse for Database File (from desktop), Select Customers.mdb, (book says Wages. Wrong)

Test Connection, OK

Next, Yes, Next,

Goto next slide7

Tasks

Step 10 in book, p. 588

Select Database Objects for the Data Set.

we do this by expanding the Tables Checkbox

click on tblCustomers.

Leave checked.

Finish

Component Tray now includes A Customers Data Set

8

Tasks

Select DataMember property of binding source (bdsCustomer) and set to tblCustomers.

Adds TBLCustomersTable Adaptor to Component tray.

Save Project.

Onto Step 13 in book…

9

Tasks

Bind the Controls to the Dataset (if using controls / form).

For each control, Go to DataBindings in property window, Text properties, bdsCustomer, and associate controls to dataset objects.

10

Tasks

Add Binding Navigator

drag from toolbox to top of form

Name it bdsCustomers via property window

Link your binding navigator to your data by changing BindingSource property of the binding navigator to bdsCustomer (drop down)

Run your program!!11

On to Customer Queries

Select TblCustomersTableAdapter in component tray.

Select Add Query... at the bottom of the Properties window

Search Criteria Builder wizard displays

Select a New query name: and enter Outdoors to build a query of customers interested in the outdoors (see next slide)12

Query Wizard looks like:

13

Customers Search Criteria Builder

Added query name

Customer Queries

Select Query Builder button to open the Query Builder dialog (three slides down)

Top section has the fields listed for tblCustomers and all fields are selected

Leave all the fields selected

All fields must be selected when using the DataGridView

14

Customer Queries

Second section has a list of the fields and the search criteria for it (two slides down)

Build your query in this section

Scroll down to the Interests field

Change the Filter to = ‘Outdoors’

Modifies a query template (next slide) that looks through all the records and returns those with Outdoors as an Interest

And adds the query being built in the third section

See SQL next slide:15

Customer Queries

Third section now reads

SELECT ID, LastName, FirstName, CustNum, Address, City, State, Zip, Since, [Last], Preferred, AcctBalance, Interests

FROM tblCustomers

WHERE (Interests = 'Outdoors') ADDED THE Where!

WHERE clause added to the SQL statement being build

Statement says to select all fields from tblCustomers and only those records where ‘Outdoors’ is in the Interests field16

Customer Queries

17

Customers Query Builder

Customer Queries

Select OK to close the Query Builder (last slide)

Select OK to close the Search Criteria Builder and create your query (slide not shown)

• ToolStrip named OutdoorsToolStrip is added to component tray and thus your query is added!

• underneath Binding Navigator

Run program; all records available as output

Select Outdoors runs the query and it displays only those records with Outdoors listed in the Interests field

18

Customer Queries

Note the Code added to the click event for the Outdoors button on the ToolStrip

Try

Me.TblCustomersTableAdapter.Outdoors(Me.CustomersDataSet.tblCustomers)

Catch ex As System.Exception

System.Windows.Forms.MessageBox.Show(ex.Message)

End Try

19

Select TblCustomersTableAdapter in component tray

Select Add Query... bottom of the Properties window

Displays Search Criteria Builder wizard

Data source table already set

Select a New query name: (I named it AllQuery) and

Select Query Builder Button.

(Want all, so no changes)

Select OK for Query Builder (see window title too)

Select OK for Search Criteria Builder (see window title)20

Query: Select All Records. (new)

Query: AllQuery

SQL stays the same.SELECT ID, LastName, FirstName, CustNum, Address,

City, State, Zip, Since, [Last], Preferred, AcctBalance, Interests

FROM tblCustomers

ToolStrip named All added to the component try and underneath Binding Navigator strip

Run the program

Click Outdoors to run that query and it displays only those records in the DataGridView

Click All to display all the records in your view.21

Code added to the click event for the All button in the new ToolStrip

Also added another subroutine in the code window for this query: Private Sub AllQueryToolStripButton_Click….

Try

Me.TblCustomersTableAdapter.All(Me.CustomersDataSet.tblCustomers)

Catch ex As System.Exception

System.Windows.Forms.MessageBox.Show(ex.Message)

End Try22

Query: AllQuery

More

If you want to play with these, you can get rid of a set of query toolstrips.

See book.

23

Data Base Terminology - Important

When a DataSet is created it generates an .xsd file

View it by selecting the TableAdapter and Edit Queries in the DataSet Designer at the bottom of the Properties window

Contains the XML schema

XML (Extensible Markup Language):

Is a specification for creating content and structure for data;

XML is an open standard specification widely used as a specification language for data and the web24

Customer Queries

These documents define and validate the content and structure of your data

Use to exchange data between applications

Schema

a diagram or plan detailing the structure of your content; for VB, it contains the structure for your DataSet

25

Customer Queries

26

Customers DataSet1

Existing Queries

VB Quiz 03

What happens if you don't select all the fields for a query?

An Exception will be generated.

What makes the Query Builder useful?

You don’t have to know SQL. But this is limiting…

How were the records sorted in the Payable query?

Last Name

What SQL code was needed to do it?

Ordered by…

27

Potential Problems

Your program won’t work if the database is corrupt

Database file cannot be in use by another program

Don’t delete or change code that’s automatically generated

Bind your DataSet to a DataGridView or to individual controls such as a TextBox or Label

Include a BindingNavigator so you can move between records

Be careful when deleting controls from the component tray and Solution Explorer

28

On Your Own

Take a look at Appendix G -- Structured Query Language (SQL) Basics

Add queries to the Customer program

Customers in your state

Customers without Preferred status

Customers name Ecks, Ray

Customers since 2008

29

On Your Own

Create a program with the Customers file that displays data in TextBoxes and CheckBoxes

Add controls and code to allow the user to update the database

30

Create a program with the KidsFirst file that displays data in a DataGridView

Add queries to find

all students in Miss Brooks class

all students without a pet (look for ‘none’)

all seven-year-old students

all seven-year-old students in Mr. Moore’s class

all students in order by LastName

all students in descending order by Locker

31

Part 5; Project 4. 50 points

If you are smart….

You will go over the Review questions, the terms, the multiple choice questions, etc. at the end of the chapter!

32

Summary

Visual Basic has controls that can link it to a database

Chapter contains tutorials to demonstrate how to connect to an Access file and manipulate records in a file

Database controls were introduced

Simple SQL examples were introduced

33