bim313 – advanced programming database operations 1

Post on 16-Dec-2015

224 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

BIM313 – Advanced Programming

Database Operations

1

Contents

• Database Structure– Database, Table, Fields, Primary Key, SQL

Statements, Select, Insert, Update, Delete• Database Operations with C# Data Objects– Designing database, Adding database into

solution, Displaying a table, Displaying a single record

• Database Example

2

A Note about the Slides

• The slides were prepared originally for Visual Studio 2008

• Almost everything is the same in Visual Studio 2012

• Some improvements in Visual Studio 2012 are also included

3

Database

• A database is an integrated collection of logically related records.

• A database contains tables.• The columns of a table is called fields.• The rows of a table is called records.• The records are accessed by SQL commands.

4

Database Applications

• A database application is designed using these steps:1. Determine tables and fields2. Design database3. Write a program which reads and manipulates

the database• In this course, we’ll use Microsoft Access and

integrated data tools in Visual Studio to design databases.

5

Exercise

• Today, we are going to write a simple database application which displays information about students and courses that students take.

6

1. Determining Tables

• We need three tables:– Students• Contains information about the students, such as ID

number, name, birthday, age, etc.

– Courses• Contains information about the courses, such as course

code, course name, instructor, etc.

– Enrolment• Contains information about which student is enrolled

to which course

7

Students Table

• Students table contains these fields:– ID– First name– Last name– Birthday– Age

• Notice that these fields are related to a student only (Remember the structs in C)

8

A Sample Students TableID First Name Last Name Birthday Age1 Bahar Çağlar 01.02.1992 172 Eşref Pazar 03.04.1993 163 Ergin Karadağ 05.06.1994 154 İrfan Karazor 07.08.1995 145 Selen Darat 09.10.1996 13

9

Courses Table

• Courses table contains these fields:– Course code– Course name– Instructor

• Adding an ID field will make the database operations simpler:– Course ID

10

A Sample Courses TableCourse ID Course Code Course Name Instructor

1 BIM111Introduction to Computer Engineering

Muzaffer DOĞAN

2 BIM211 Visual Programming Muzaffer DOĞAN3 BIM201 System Software Cüneyt AKINLAR4 BIM309 Artificial Intelligence Sedat TELÇEKEN

5 BIM213 Data Structures and Algorithms Cüneyt AKINLAR

11

Enrolment Table

• Enrolment table contains information about the courses taken by each students.

• It has two fields:– Student ID– Course ID

• For example, if a record with Student ID = 1 and Course ID = 2, then it means that the student with ID = 1 (Bahar Çağlar) takes the course with ID = 2 (Visual Programming)

12

A Sample Enrolment TableStudent ID Course ID

1 2

1 3

2 1

2 2

2 4

3 2

3 5

4 1

4 3

5 2

5 5

13

Primary Key

• Primary key is the field which uniquely identifies each row in a table

• A primary key comprises a single column or a set of columns

• ID field in Students table and Course ID field in Courses table are primary keys

• Both Student ID and Course ID fields in Enrolment table must be primary keys

• Always create primary keys for tables.14

2. Designing Database

• The database design steps are explained in detail in the next slides

• The basic steps are– Open Microsoft Access– Create a database file of format Office 2002-2003 with the

extension *.mdb• Office 2007-2010 format (*.accdb) is also used but it may have

some difficulties.

– Create tables in design view– Enter records– Close MS Access

15

Open MS Access

16

Click Office Button and Select New

17

On the right pane, click Browse button

18

Select a folder, a file name, and Office 2002-2003 format with extension *.mdb

19

Click Create Button

20

Right-click Table1 on left-pane and select Design View

21

Give a name to the table and click OK button

22

Write StudentID into the first field

23

Notice the yellow “Primary Key” icon on the left

24

Write “FirstName” into second field and set “Text Size” as 30

25

Write “LastName” into third field and set its “Text Size” as 30

26

Write “BirthDay” to fourth field and set its type as “Date/Time”

27

Write “Age” into fifth field, set its type as “Number” and select “Integer” as its size

28

Close Design View of Students table

29

Click Yes to save the changes

30

Click “Create” tab and select “Table”

31

Right-click Table1 and select Design View

32

Write the name “Courses” and click OK

33

Fill the field names and set their types and sizes. Click Close button.

34

Click Yes to save the changes

35

Give the command Create - Table

36

Right-click Table1 and select Design View

37

Write Enrolment as the table name and click OK

38

“StudentID”, Number, Long Integer

39

“CourseID”, Number, Long Integer

40

Using mouse, select both StudentID and CourseID fields

41

Click “Primary Key” button and notice that both fields become primary keys

42

Close the Design View of Enrolment table

43

Click Yes to save the changes

44

Double-click Students table

45

Fill the records (don’t write anything into StudentID field, it is automatically filled)

46

Double-click Courses table and enter the records

47

Double-click Enrolment table and enter the records

48

Close the MS Access window

49

3. Writing the Program

a) Adding database file into solutionb) Displaying studentsc) Adding new studentd) Changing student infoe) Deleting a studentf) Displaying all courses a student take

50

a) Adding Database File into Solution

51

Summary of the Steps

• Create a new project• Copy the database file into the solution folder• Add the database file into the solution in

Visual Studio 2012

52

Copy database file into solution folder

53

Right-click project name, click Add, click Existing Item…

54

Filter Data Files, Select the database file and click Add

55

Select all tables and click Finish

56

Choose a database model and click “Next”

57

Database file and automatically generated files are displayed in Solution Explorer

58

In the “Data Sources” window, you’ll see the data sets for each table

59

After you build your program, you’ll see some additional project-related

objects at the top of the toolbox

60

b) Displaying Students

61

Drag & drop the “Students” data set from the “Data Sources” window

62

Click on the triangle at the top-right corner of the DataGridView object and

click on “Dock in Parent Container”

63

Execute the Program

• You can add a new student; delete or change an existing student using the toolbar above the form

64

Precise Control

• In some cases, this method works for you.• But in many cases, you want to control the

inserting, deleting and updating operations• Additionally, your data may be coming from

more than one tables and this type of automatic table display does not work for you

• Therefore, you may want to add the DataGridView object and code it by yourself.

65

The data-related objects are located under the “Data” menu of the

toolbox:

66

Drag & Drop a DataGridView object

67

Choose Students as the Data Source

68

Execute the Program

69

What to Notice?

• Notice that...– We didn’t write any code!– When we select Data Source, some controls are

added to the form automatically by Visual Studio!– Some codes are added into Load event handler of

the form automatically by Visual Studio!

70

Which controls are added?

71

Which code is added?

72

Controls

• studentsTableAdapter– The interface between program and database

• schoolDataSet– All data is written into this dataset

• studentsBindingSource– Binds data to the controls (e.g. DataGridView) on

the form

73

Controls

74

Database Table Adapter

Data Set

Binding SourceForm

The Code

this.studentsTableAdapter.Fill(this.schoolDataSet.Students);

75

Controls added into solution automatically

by Visual Studio

The method which acquires data from

database

The table which is used to store query results from

Students table of the database

Acquiring Data of One Student

• All data acquirement operations are done by TableAdapter object

• Fill method is the method which brings all data from the table

• If you want to get only one student’s data, you need to create a new query in the TableAdapter object

76

Click on the triangle on table adapter object and select Add Query command

77

Write FillByStudentID as query name and click Query Builder button

78

Go to the Filter column of StudentID row and write “=?” and click OK

79

Query Builder

• All data are acquired from database via SQL commands

• Query builder makes writing SQL commands easier

• By clicking Execute button, you can display the result of your query

• Notice that the SQL command is changed after you write “=?” into the Filter column

• Here, “?” represents a parameter for the query80

Click OK to return to Visual Studio

81

A ToolStrip is automatically added into the form

82

A new code which uses the new FillByStudentID method is added into the codes

83

Run the program, write a number into StudentID box, and click FillByStudentID button

84

Only the student with the selected

ID is displayed

About the ToolStrip

• Generally, the ToolStrip which is added by Visual Studio is not wanted

• You can simply delete the ToolStrip and write your own code

• Click on the ToolStrip icon below the form (near other automatically added controls) and press Delete button from the keyboard

85

Displaying One Student’s Info by Code

• Place a button on the form and write the following code in its Click event handler:

86

this.studentsTableAdapter.FillByStudentID( this.schoolDataSet.Students, 3);

• In the code above, the Students table in the data set is filled by the FillByStudentID method of the table adapter with the data of the student with ID 3.

Execution of the Program:

87

When “One Student” button is clicked:

88

Is it displayed automatically?

• Notice that we only filled the data set and we didn’t write any code to display new data in DataGridView object

• So, how was data displayed in DataGridView?• This task is accomplished by the Binding Source

object.• So, you just need to bring and write data into

the data set and it is automatically displayed in the controls on the form by the Binding Source

89

Other Methods in Table Adapter Object

• The studentsTableAdapter control has some useful methods:– Fill() : Get data from database– Insert() : Add a new record to the database– Update() : Change an existing record– Delete() : Delete an existing record

• These methods correspond to the SQL commands of types Select, Insert, Update, and Delete respectively

90

SQL Command Types and Corresponding Methods

SQL Command Type Table Adapter MethodSELECT Fill()

FillByStudentID()FillByStudentName()etc.

INSERT Insert()UPDATE Update()DELETE Delete()

91

c) Adding New Student

(will be covered in next week)

92

d) Changing Student Info

(will be covered in next week)

93

e) Deleting a Student

(will be covered in next week)

94

f) Displaying All Courses a Student Take

(will be covered in next week)

95

top related