Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Open Database Connectivity wikipedia , lookup
Registry of World Record Size Shells wikipedia , lookup
Clusterpoint wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Relational model wikipedia , lookup
Concurrency control wikipedia , lookup
Microsoft Access wikipedia , lookup
Team Foundation Server wikipedia , lookup
Microsoft Visual Basic 2010: Reloaded Fourth Edition Chapter Twelve Access Databases and LINQ Objectives After studying this chapter, you should be able to: • Define the terms used when talking about databases • Connect an application to a Microsoft Access database • Bind table and field objects to controls • Explain the purpose of the DataSet, BindingSource, TableAdapter, TableAdapterManager, and BindingNavigator objects Microsoft Visual Basic 2010: Reloaded, Fourth Edition 2 Objectives (cont'd.) • Customize a DataGridView control • • • • • • Handle errors using the Try…Catch statement Position the record pointer in a dataset Access the value stored in a field object Query a dataset using LINQ Customize a BindingNavigator control Use the LINQ aggregate methods Microsoft Visual Basic 2010: Reloaded, Fourth Edition 3 Database Terminology • Computer database: electronic file containing an organized collection of related information • Relational database: database that stores information in tables composed of columns and rows • Field: single item of information • Record: group of related fields • Table: group of related records • Primary key: field that uniquely identifies each record Microsoft Visual Basic 2010: Reloaded, Fourth Edition 4 Database Terminology (cont'd.) Figure 12-1: Example of a one-table relational database Microsoft Visual Basic 2010: Reloaded, Fourth Edition 5 Database Terminology (cont'd.) • Parent table: contains a primary key • Child table: contains a foreign key from the parent table to link the tables • Foreign key: field in a table that contains the primary key of another table • Relational database advantages: – Less redundancy – Fast retrieval – Ability to selectively retrieve data Microsoft Visual Basic 2010: Reloaded, Fourth Edition 6 Database Terminology (cont'd.) Figure 12-2: Example of a two-table relational database Microsoft Visual Basic 2010: Reloaded, Fourth Edition 7 Connecting an Application to a Microsoft Access Database • Microsoft Access database: – Has a file extension of .accdb • Must connect an application to the database before the application can access the data • Use the Data Source Configuration Wizard to connect to a database • Dataset: copy of the fields and records stored in the computer’s internal memory, which the application can access Microsoft Visual Basic 2010: Reloaded, Fourth Edition 8 Connecting an Application to a Microsoft Access Database (cont'd.) Figure 12-3: Data contained in the tblEmploy table Microsoft Visual Basic 2010: Reloaded, Fourth Edition 9 Connecting an Application to a Microsoft Access Database (cont'd.) Figure 12-4: How to connect an application to an Access database Microsoft Visual Basic 2010: Reloaded, Fourth Edition 10 Connecting an Application to a Microsoft Access Database (cont'd.) Figure 12-5: Result of running the Data Source Configuration Wizard Microsoft Visual Basic 2010: Reloaded, Fourth Edition 11 Connecting an Application to a Microsoft Access Database (cont'd.) Figure 12-6: How to preview the contents of a dataset Microsoft Visual Basic 2010: Reloaded, Fourth Edition 12 Figure 12-7: EmployeesDataSet shown in the Preview Data dialog box Microsoft Visual Basic 2010: Reloaded, Fourth Edition 13 Binding the Objects in a Dataset • Binding: connecting an object in a dataset to a control on a form • Bound controls: controls that are connected to an object in a dataset • Can bind an object to: – An existing control in the interface – A control the computer creates for you Microsoft Visual Basic 2010: Reloaded, Fourth Edition 14 Binding the Objects in a Dataset (cont'd.) Figure 12-8: How to bind an object in a dataset Microsoft Visual Basic 2010: Reloaded, Fourth Edition 15 Having the Computer Create a Bound Control • To allow the computer to create a bound control: – Drag the object from the dataset to the form • DataGridView control: displays table data in a row and column format • Use the list arrow next to an object’s name to change the type of control to be created Microsoft Visual Basic 2010: Reloaded, Fourth Edition 16 Having the Computer Create a Bound Control (cont'd.) Figure 12-9: Icons in the Data Sources window Microsoft Visual Basic 2010: Reloaded, Fourth Edition 17 Having the Computer Create a Bound Control (cont'd.) Figure 12-10: Result of clicking the tblEmploy table object’s list arrow Microsoft Visual Basic 2010: Reloaded, Fourth Edition 18 Having the Computer Create a Bound Control (cont'd.) Figure 12-11: Result of clicking the Last_Name filed object’s list arrow Microsoft Visual Basic 2010: Reloaded, Fourth Edition 19 Having the Computer Create a Bound Control (cont'd.) • BindingNavigator control: – Allows movement to first, last, next, or previous record – Allows direct selection of record by number – Allows you to add or delete a record – Allows you to save changes made to the dataset • Five objects are placed in the component tray: – DataSet, BindingSource, TableAdapter, TableAdapterManager, BindingNavigator Microsoft Visual Basic 2010: Reloaded, Fourth Edition 20 Having the Computer Create a Bound Control (cont'd.) Figure 12-12: Result of dragging the table object to the form Microsoft Visual Basic 2010: Reloaded, Fourth Edition 21 Having the Computer Create a Bound Control (cont'd.) • TableAdapter object: connects the database to the DataSet object • DataSet object: stores the information to be accessed from the database • TableAdapterManager object: handles saving data to multiple tables in the DataSet • BindingSource object: connects the DataSet object to the bound controls on the form Microsoft Visual Basic 2010: Reloaded, Fourth Edition 22 Having the Computer Create a Bound Control (cont'd.) Figure 12-13: Illustration of the relationships among the database, the objects in the component tray, and the bound controls Microsoft Visual Basic 2010: Reloaded, Fourth Edition 23 The DataGridView Control • DataGridView control: displays data in a row and column format – Each row represents a record – Each column represents a field • Cell: the intersection of a row and column • DataGridView has a task list used to control its appearance and behavior Microsoft Visual Basic 2010: Reloaded, Fourth Edition 24 The DataGridView Control (cont'd.) Figure 12-14: Task list for a DataGridView control Microsoft Visual Basic 2010: Reloaded, Fourth Edition 25 The DataGridView Control (cont'd.) Figure 12-15: Purpose of each task in the DataGridView’s task list Microsoft Visual Basic 2010: Reloaded, Fourth Edition 26 The DataGridView Control (cont'd.) Figure 12-15: Edit Columns dialog box Microsoft Visual Basic 2010: Reloaded, Fourth Edition 27 The DataGridView Control (cont'd.) • Many properties of DataGridView are listed only in the Properties window • AutoSizeColumnsMode property: – Select Fill setting to automatically adjust column widths to exactly fill the display area – Select ColumnHeader setting to adjust column widths based on the header text Microsoft Visual Basic 2010: Reloaded, Fourth Edition 28 The DataGridView Control (cont'd.) Figure 12-17: DataGridView control after setting some of its properties Microsoft Visual Basic 2010: Reloaded, Fourth Edition 29 Visual Basic Code • DataGridView control allows data to be edited directly within the control to update the database • Two event procedures are automatically created in Code Editor window when a table or field object is dragged to the form – MainForm_Load – bindingNavigatorSaveItem_Click • MainForm_Load event: – Fill method: TableAdapter object’s method to retrieve data from the database and store it in the dataset Microsoft Visual Basic 2010: Reloaded, Fourth Edition 30 Visual Basic Code (cont'd.) • bindingNavigatorSaveItem_Click event: – Saves any changes made to the dataset – EndEdit method: applies pending changes to the dataset – UpdateAll method: commits the dataset changes to the database • Be sure to use error-handling code Microsoft Visual Basic 2010: Reloaded, Fourth Edition 31 Visual Basic Code (cont'd.) Figure 12-18: Code automatically entered in the Code Editor window Microsoft Visual Basic 2010: Reloaded, Fourth Edition 32 Handling Errors in the Code • Exception: an error that occurs while an application is running • VB “handles” errors if the program does not by showing an error message and terminating the application • Try…Catch statement: used to trap errors and attempt to handle them – Place code that could cause an exception within the Try block – Catch block is executed if an exception occurs Microsoft Visual Basic 2010: Reloaded, Fourth Edition 33 Figure 12-19: How to use the Try…Catch statement Microsoft Visual Basic 2010: Reloaded, Fourth Edition 34 Handling Errors in the Code (cont’d.) Figure 12-19: How to use the Try…Catch statement (cont’d.) Microsoft Visual Basic 2010: Reloaded, Fourth Edition 35 Handling Errors in the Code (cont'd.) Figure 12-20: Try…Catch statement entered in the Save Data button’s Click event procedure Microsoft Visual Basic 2010: Reloaded, Fourth Edition 36 Handling Errors in the Code (cont'd.) Figure 12-21: Sample run of the Morgan Industries application Microsoft Visual Basic 2010: Reloaded, Fourth Edition 37 Handling Errors in the Code (cont'd.) • BindingNavigator control provides buttons for first, last, previous, and next record and for adding records, deleting records, and saving changes • Can also use the control to access a record by its record number Microsoft Visual Basic 2010: Reloaded, Fourth Edition 38 The Copy to Output Directory Property • Local database file: database file contained in a project • Copy to Output Directory property: determines how VB saves changes to a local database file • Copy always setting: database file is copied from the project folder to bin\Debug folder each time the application is started – Changes are made only to the bin\Debug copy • Copy if newer setting: newer of the two database files (project folder and bin\Debug folder) is saved in bin\Debug folder Microsoft Visual Basic 2010: Reloaded, Fourth Edition 39 The Copy to Output Directory Property (cont’d.) Figure 12-22: How to use the Copy to Output Directory property Microsoft Visual Basic 2010: Reloaded, Fourth Edition 40 Binding to an Existing Control • Can bind an object in a dataset to an existing control in two ways: – Drag an object in the dataset to a control on the form – Select the control and set properties • Properties to bind the control are specific to the control • DataSet, BindingSource,TableAdapter, and TableAdapterManager objects are added to the component tray • BindingNavigator control is NOT added automatically Microsoft Visual Basic 2010: Reloaded, Fourth Edition 41 Binding to an Existing Control (cont'd.) Figure 12-23: Result of dragging field objects to existing label controls Microsoft Visual Basic 2010: Reloaded, Fourth Edition 42 Binding to an Existing Control (cont'd.) Figure 12-24: Sample run of a different version of the Morgan Industries application Microsoft Visual Basic 2010: Reloaded, Fourth Edition 43 Coding the Next Record and Previous Record Buttons • BindingSource object uses an invisible record pointer to track the current record in the dataset • Position property: stores position of current record; this position number is zero-relative • Move method: moves the record pointer’s position to first, last, previous, or next record in the dataset Microsoft Visual Basic 2010: Reloaded, Fourth Edition 44 Figure 12-23: How to use the BindingSource object’s Position property Microsoft Visual Basic 2010: Reloaded, Fourth Edition 45 Figure 12-26: How to use the BindingSource object’s Move methods Microsoft Visual Basic 2010: Reloaded, Fourth Edition 46 Coding the Next Record and Previous Record Buttons (cont'd.) Figure 12-27: Code entered in the Click event procedures for the Next Record and Previous Record buttons Microsoft Visual Basic 2010: Reloaded, Fourth Edition 47 Accessing the Value Stored in a Field Figure 12-28: How to access the value stored in a field object Microsoft Visual Basic 2010: Reloaded, Fourth Edition 48 Creating a Query • Can arrange records in a dataset in any order • Query: specifies the records to select in a dataset • Language Integrated Query (LINQ): language used to create a query – Where clause: optional, specifies a condition to limit which records to view – Order By clause: optional, specifies whether to arrange in descending or ascending order • Option Infer On: allows computer to infer the data type from the variables in the query Microsoft Visual Basic 2010: Reloaded, Fourth Edition 49 Creating a Query (cont’d.) Figure 12-29: How to use LINQ to select and arrange records in a dataset Microsoft Visual Basic 2010: Reloaded, Fourth Edition 50 Figure 12-29: How to use LINQ to select and arrange records in a dataset (cont’d.) Microsoft Visual Basic 2010: Reloaded, Fourth Edition 51 Creating a Query (cont’d.) Figure 12-30: How to assign a LINQ variable’s contents to a BindingSource control Microsoft Visual Basic 2010: Reloaded, Fourth Edition 52 Figure 12-31: LINQ code entered in the Find Last Name button’s Click event procedure Microsoft Visual Basic 2010: Reloaded, Fourth Edition 53 Creating a Query (cont’d.) Figure 12-32: Employees whose last name begins with the letter S Microsoft Visual Basic 2010: Reloaded, Fourth Edition 54 Personalizing a BindingNavigator Control • You can include other items on the BindingNavigator control: – Buttons, text boxes, or drop-down buttons Microsoft Visual Basic 2010: Reloaded, Fourth Edition 55 Personalizing a BindingNavigator Control (cont’d.) Figure 12-33: How to manipulate the items on a BindingNavigator control Microsoft Visual Basic 2010: Reloaded, Fourth Edition 56 Personalizing a BindingNavigator Control (cont’d.) Figure 12-34: Items Collection Editor window Microsoft Visual Basic 2010: Reloaded, Fourth Edition 57 Personalizing a BindingNavigator Control (cont’d.) Figure 12-35: DropDownButton added to the BindingNavigator control Microsoft Visual Basic 2010: Reloaded, Fourth Edition 58 Using the LINQ Aggregate Operators • Aggregate operator: returns a single value from a group of values • Most commonly used aggregate operators: – Average, Count, Max, Min, and Sum Microsoft Visual Basic 2010: Reloaded, Fourth Edition 59 Figure 12-36: How to use the LINQ aggregate operators Microsoft Visual Basic 2010: Reloaded, Fourth Edition 60 Using the LINQ Aggregate Methods (cont'd.) Figure 12-37: Code associated with the three items on the DropDownButton Microsoft Visual Basic 2010: Reloaded, Fourth Edition 61 Using the LINQ Aggregate Methods (cont'd.) Figure 12-37: Code associated with the three items on the DropDownButton (cont’d.) Microsoft Visual Basic 2010: Reloaded, Fourth Edition 62 Using the LINQ Aggregate Methods (cont'd.) Figure 12-37: Code associated with the three items on the DropDownButton (cont’d.) Microsoft Visual Basic 2010: Reloaded, Fourth Edition 63 Adding Items to the BindingNavigator Control (cont'd.) Figure 12-38: Average pay rate for part-time employees Microsoft Visual Basic 2010: Reloaded, Fourth Edition 64 Programming Tutorial 1 • Creating the Trivia Game application Figure 12-40: MainForm for the Trivia Game application Microsoft Visual Basic 2010: Reloaded, Fourth Edition 65 Programming Tutorial 2 • Creating the CD Collection application Figure 12-50: Preview Data dialog box showing the data stored in the CDDataSet Microsoft Visual Basic 2010: Reloaded, Fourth Edition 66 Programming Example • Cartwright Industries application Figure 12-55: MainForm in the Cartwright Industries application Microsoft Visual Basic 2010: Reloaded, Fourth Edition 67 Summary • Can use Visual Basic to access data stored in databases • Relational database: stores information in tables composed of fields and records • Primary key: field in a database table that uniquely identifies each record • Data in a relational database can be displayed in any order, and you can control the amount of information to view Microsoft Visual Basic 2010: Reloaded, Fourth Edition 68 Summary (cont'd.) • You must connect the application to a database to create a dataset • Display dataset information by binding controls to dataset objects • TableAdapter: connects a database to a DataSet object • BindingSource object: connects a DataSet object to bound controls on a form • DataGridView control displays data in row and column format Microsoft Visual Basic 2010: Reloaded, Fourth Edition 69 Summary (cont'd.) • Use a Try…Catch statement to handle exceptions • Database file’s Copy to Output Directory property: determines when and if the file is copied to the project’s bin\Debug folder • BindingSource object’s Position property: stores the location of the record pointer in a dataset • BindingSource object’s Move methods: used to move the record pointer in a dataset • Can access the value stored in a field object in a dataset Microsoft Visual Basic 2010: Reloaded, Fourth Edition 70 Summary (cont'd.) • Use LINQ to select and arrange records in a dataset • LINQ provides Average, Sum, Count, Min, and Max aggregate methods • Can include additional items such as text boxes and drop-down buttons on a BindingNavigator control Microsoft Visual Basic 2010: Reloaded, Fourth Edition 71