This document provides a lab manual for a programming course. It outlines the topics and activities to be covered each week over 15 weeks. The topics include Visual Basic controls and events, variables and data types, decisions and loops, files and databases. Each weekly section describes the learning outcomes and provides examples of code and tasks to practice the weekly concepts. The document includes tables of contents, in-depth explanations of concepts, and step-by-step instructions for exercises.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
146 views50 pages
MIS 312 Lab Manual
This document provides a lab manual for a programming course. It outlines the topics and activities to be covered each week over 15 weeks. The topics include Visual Basic controls and events, variables and data types, decisions and loops, files and databases. Each weekly section describes the learning outcomes and provides examples of code and tasks to practice the weekly concepts. The document includes tables of contents, in-depth explanations of concepts, and step-by-step instructions for exercises.
Week 1 and 2: Chapter 2: Visual Basic, Controls, and Events 2.1 An Introduction to Visual Basic 2.2 Visual Basic Controls 2.3 Visual Basic Events
Lesson 1 2.1 An Introduction to Visual Basic & visual basic controls Learning outcome: be able to: Develop a Visual Basic Application Design the Interface for the user. start a new project know the toolbox control how to change the properties of control using properties windows Determine which events the controls on the window should recognize. Write the event procedures for those events.
- Visual Basic Start Page
4 / 50
- Start a New Project
New Project Dialog Box
5 / 50
Initial Visual Basic Screen
Toolbox control:
Place a Control from the Toolbox onto the Form Window by using one of three ways: Double-click Drag and Drop Click, Point, and Drag 6 / 50
Properties Window Press F4 to display the Properties window for the selected control
Categorized view Alphabetical view
Textbox
properties
setting 7 / 50
Properties Window
Some Often Used Properties Text Autosize Font.Name Font.Size ForeColor BackColor ReadOnly
Setting Properties Click on property name in left column. Enter its setting into right column by typing or selecting from options displayed via a button or ellipses.
Setting the Text Property Click on Text property. Type your first name
8 / 50
Setting the ForeColor Property Click on ForeColor. Click on button at right of settings box. Click on Custom tab to obtain display shown. Click on a color.
Font Property Click on Font in left column. Click on ellipsis at right of settings box to obtain display shown, Make selections
9 / 50
Button Control The caption on the button should indicate the effect of clicking on the button. Text property determines caption
Task : Create a program with: form name your name yellow button containing the word VB in a large italic,centralized and red letter read-only textbox containing the words" Visual Basic" in bold, centralized white letter and red background.
10 / 50
Lesson 2: 2.3 Visual Basic Events Learning outcome for this sections: Know how to Write the code that executes when events occur Change the properties of controls using code
General Form: controlName.property =setting
Code Editor
Code Editor tab Form Designer tab
header Structure of an Event Procedure
Private Sub objectName_event(...) Handles objectName.event statements End Sub
(...) is filled automatically with (By Val sender As System.Object, By Val e As System.EventArgs
11 / 50
Sample Form
Double Click on txtFirst Public Class frmDemo Private Sub txtFirst_TextChanged(...) Handles txtFirst.TextChanged
End Sub End Class
Public Class frmDemo Private Sub txtFirst_TextChanged(...) Handles txtFirst.TextChanged txtFirst.ForeColor = Color.Blue End Sub End Class
Automatically pops up to give the programmer help. txtFirst.
Double-click on btnRed
Public Class frmDemo Private Sub txtFirst_TextChanged(...) txtfirst txtsecond btnred 12 / 50
Handles txtFirst.TextChanged txtFirst.ForeColor = Color.Blue End Sub
Private Sub btnRed_Click(...) Handles btnRed.Click txtFirst.ForeColor = Color.Red End Sub End Class
Event Procedure txtFirst.Leave
Select txtFirst from Class Name box drop-down list. Select Leave from Method Name box drop-down list.
Private Sub txtFirst_Leave(...) Handles txtFirst.Leave txtFirst.ForeColor = Color.Black
End Sub
Private Sub txtFirst_TextChanged() Handles txtFirst.TextChanged txtFirst.ForeColor = Color.Blue End Sub
Private Sub btnRed_Click(...) Handles btnRed.Click txtFirst.ForeColor = Color.Red End Sub
Altering Properties of the Form The following won't work: frmDemo.Text = "Demonstration"
The form is referred to by the keyword Me. Me.Text = "Demonstration
13 / 50
Week 3: Chapter 3: Numbers, Variables, and Strings 3.1 Numbers 3.2 Strings 3.3 Input and Output
Lesson 1: Numbers and variables Learning outcomes : - be able to know how to display numbers in a listbox - be able to know how to declare a variables
Displaying Numbers Let n be a number or a numeric expression. The statement: lstBox.Items.Add(n) displays the value of n in the list box.
Example:
Code and output: Private Sub btnCompute_Click (...)Handles btnCompute.Click lstResults.Items.Add(5) lstResults.Items.Add(2 * 3) lstResults.Items.Add((2 ^ 3) 1) End Sub
Output in list box 5 6 7
14 / 50
Declaration of variables
Numeric variables are automatically initialized to 0: Dim varName As Double
To specify a nonzero initial value Dim varName As Double = 50
Numeric variables can be used in numeric expressions. Example: Dim balance As Double = 1000 lstBox.Items.Add(1.05 * balance) Output: 1050
Lesson 2: Strings Learning outcomes: - be able to know how to declare a string. - Be able to know string's method and properties
Strings declaration You can declare a string variable and assign it a value at the same time. Dim firstName As String = "Fred"
Add Method Let str be a string literal or variable. Then, lstBox.Items.Add(str) displays the value of str in the list box.
Using Text Boxes for Input and Output The contents of a text box is always a string
example strVar = txtBox.Text
Output example txtBox.Text = strVar
String Properties and Methods "Visual".Length is 6. "Visual".ToUpper is VISUAL. "123 Hike".Length is 8. "123 Hike".ToLower is 123 hike. "a" & " bcd ".Trim & "efg" is abcdefg.
15 / 50
Substring Method Let str be a string. str.Substring(m, n) is the substring of length n, beginning at position m in str.
Visual Basic.Substring(2, 3) is sua Visual Basic.Substring(0, 1) is V
IndexOf Method Let str1 and str2 be strings. str1.IndexOf(str2) is the position of the first occurrence of str2 in str1. (Note: Has value -1 if str2 is not a substring of str1.) "Visual Basic".IndexOf("is") is 1.
Task#2 Write a program that parses a name: Private Sub btnanalyze_Click (...)Handles btnanalyze.Click Dim fullname, firstname, lastname as string Dim n as integer Fullname=txtname.text N=fullname.indexof(" ") Firstname=fullname.substring(0,n) Lastname=fullname.substring(n+1)
Lesson 3:Input and Output Learning outcomes: Be able to know how to Format Output with Zones Reading Data from Files
Formatting Output with Zones: Use a fixed-width font such as Courier New and divide the characters into zones with a format string. Dim fmtStr As String = "{0, 15}{1, 10}{2, 8}" lstOutput.Items.Add(String.Format(fmtStr, _data0, data1, data2))
Dim fmtStr As String = "{0, 15}{1, 10}" lstOutput.Items.Add(String.Format(fmtStr, _Name, Major)) lstOutput.Items.Add(String.Format(fmtStr, _Mohammed, MIS)) lstOutput.Items.Add(String.Format(fmtStr, _Ahmed, CIS)) 16 / 50
Reading Data from Files Sample File: PAYROLL.TXT Mike Jones 9.35 35 John Smith 10.75 33
Steps to Use StreamReader Execute a statement of the form Dim readerVar As IO.StreamReader = IO.File.OpenText(filespec)
Read items of data in order, one at a time,from the file with the ReadLine method. strVar = readerVar.ReadLine After the desired items have been read from the file, terminate the communications link readerVar.Close()
Example using StreamReader Dim name As String Dim wage, hours As Double Dim sr As IO.StreamReader = IO.File.OpenText("PAYROLL.TXT") name = sr.ReadLine wage = CDbl(sr.ReadLine) hours = CDbl(sr.ReadLine) lstBox.Items.Add(name & ": " & wage * hours) OUTPUT: Mike Jones: 327.25
Lesson 1: sequential files: Learning outcomes: be able to know how to: Create a Sequential File Add Items to a Sequential File
Creating a Sequential File 1.Choose a filename may contain up to 215 characters 2.Select the path for the folder to contain this file 3.Execute a statement like the following: Dim sw As IO.StreamWriter = IO.File.CreateText(filespec) (Opens a file for output.) 4.Place lines of data into the file with statements of the form: sw.WriteLine(datum) 5.Close the file: sw.Close( ) Example: Private Sub btnCreateFile_Click(...) _Handles btnCreateFile.Click Dim sw As IO.StreamWriter =IO.File.CreateText("PAYROLL.TXT") sw.WriteLine("Mike Jones") 'Name sw.WriteLine(9.35) 'Wage sw.WriteLine(35) Hours worked sw.WriteLine("John Smith") sw.WriteLine(10.75) sw.WriteLine(33) sw.Close() End Sub
File: PAYROLL.TXT Mike Jones 9.35 35 John Smith 10.75 33 Adding Items to a Sequential File 1.Execute the statement Dim sw As IO.StreamWriter = IO.File.AppendText(filespec) where sw is a variable name and filespec identifies the file. 2.Place data into the file with the WriteLine method. 3.After all the data have been recorded into the file, close the file with the statement sw.Close() 18 / 50
Week 5: Chapter 4: Decisions (If Blocks/ Select Case Blocks) 5.1 - If blocks 5.2 - Select Case blocks
Lesson 1: if blocks Learning outcomes: be able to know - how to write a code with condition using if clause or else if clause
Example 1: Form
Example 1: Code Private Sub btnFindLarger_Click(...) _ Handles btnFindLarger.Click Dim num1, num2, largerNum As Double num1 = CDbl(txtFirstNum.Text) num2 = CDbl(txtSecondNum.Text) If num1 > num2 Then largerNum = num1 txtFirstNum
txtSecondNum
txtResult
19 / 50
Else largerNum = num2 End If txtResult.Text = "The larger number is " & largerNum End Sub
Example 1: Output
Example 2: Form
Example 2: Partial Code If costs = revenue Then txtResult.Text = "Break even" Else If costs < revenue Then profit = revenue - costs txtResult.Text = "Profit is " & _ FormatCurrency(profit) & "." Else loss = costs - revenue txtResult.Text = "Loss is " & _ 20 / 50
FormatCurrency(loss) & "." End If End sub
Example 2: Output
Example:Grade Computation If Score>=90 and Attendance=100 grade=A If Score>=90 and Attendance<100 grade=B If Score>=80 and <=90 and Attendance >=90 grade=B Otherwise grade=C
Example 2: Partial Code Dim score, attendance As Double score = CDbl(txtScore.Text) attendance = CDbl(txtAttendance.Text) 21 / 50
If score >= 90 Then If attendance = 100 Then txtGrade.Text = "A" Else txtGrade.Text = "B" End If ElseIf score >= 80 And attendance >= 90 Then txtGrade.Text = "B" Else txtGrade.Text = "F" End If
Lesson 2 : select case Learning outcomes: - be able to know how to write a code using select case
Example 1: Form
Example 1: Code Private Sub btnEvaluate_Click(...) _ Handles btnEvaluate.Click Dim position As Integer = CInt(txtPosition.Text) Select Case position Case 1 txtOutcome.Text = "Win" Case 2 txtOutcome.Text = "Place" Case 3 txtOutcome.Text = "Show" Case 4, 5 txtOutcome.Text = "You almost placed in the money." Case Else txtPosition txtOutcome 22 / 50
txtBox.Text = "Out of the money." End Select End Sub Example 1: Output
23 / 50
Week 6: Chapter 9: Additional Controls and Objects (List Boxes/ Combo Boxes) - 9.1 List Boxes, Combo Boxes
Lesson 1: List Boxes, Combo Boxes Learning outcomes: - be able to know how to use : - List Box Control - Combo Box Control
Example 1: Form
Example 1: Code Private Sub lstOxys_SelectedIndexChanged(...) _ Handles lstOxys.SelectedIndexChanged txtSelected.Text = CStr(lstOxys.SelectedItem) End Sub Private Sub btnAdd_Click(...) Handles btnAdd.Click Dim item As String item = InputBox("Item to Add:") lstOxys.Items.Add(item) End Sub Private Sub lstOxys_DoubleClick(...) _ Handles lstOxys.DoubleClick lstOxys.Items.RemoveAt(lstOxys.SelectedIndex) txtSelected.Clear() End Sub
Lesson 2: The Combo Box Control Example 2 Private Sub btnDisplay_Click(...) _ Handles btnDisplay.Click txtSelected
lstOxys 24 / 50
txtDisplay.Text = cboTitle.Text & " " & txtName.Text End Sub
cboTitle txtDisplay txtDisplay 25 / 50
Week 7: Chapter 5: General Procedures (Sub Procedures) 5.1 Sub Procedures
Lesson 1: sub procedure Learning outcomes: be able to : Compare function procedure with sub procedures Know the difference between bassing by value and by reference
general syntax Sub ProcedureName() statements End Sub
Example1: Private Sub Button1_Click() Handles Button1.Click lstBox.Items.Clear() ExplainPurpose() lstBox.Items.Add("") End Sub
Sub ExplainPurpose() lstBox.Items.Add("Program displays a sentence") lstBox.Items.Add("identifying a sum.") End Sub
Passing by Value and by reference Example Public Sub btnOne_Click (...) Handles _ btnOne.Click Dim n As Double = 4 Triple(n) txtBox.Text = CStr(n) End Sub Sub Triple(By Val num As Double) num = 3 * num End Sub Output: 4
Same Example: n num Public Sub btnOne_Click (...) Handles _ 26 / 50
btnOne.Click Dim num As Double = 4 Triple(num) txtBox.Text = CStr(num) End Sub Sub Triple(By Val num As Double) num = 3 * num End Sub Output: 4
Passing by Reference Example Public Sub btnOne_Click (...) Handles _ btnOne.Click Dim num As Double = 4 Triple(num) txtBox.Text = CStr(num) End Sub Sub Triple(ByRef num As Double) num = 3 * num End Sub Output: 12
Example: num n Private Sub btnOne_Click(...) Handles _ btnOne_Click Dim n As Double = 4 Triple(n) txtBox.Text = CStr(n) End Sub Sub Triple(ByRef num As Double) num = 3 * num End Sub Output: 12
27 / 50
Week 8: Chapter 5: General Procedure (Function Procedures) Lesson 1: 5.3 Function Procedures
Learning outcomes: be able to : Compare function procedure with sub procedures Syntax: Function FunctionName(By Val var1 As Type1, _ By Val var2 As Type2, _ ) As dataType statement(s) Return expression End Function
Example: Form
Example: Code Private Sub btnDetermine_Click(...) _ Handles btnDetermine.Click Dim name As String name = txtFullName.Text txtFirstName.Text = FirstName(name) End Sub
Function FirstName(By Val name As String) As String Dim firstSpace As Integer firstSpace = name.IndexOf(" ") Return name.Substring(0, firstSpace) End Function
28 / 50
Example2: Form
Example: Code Private Sub btnCalculate_Click(...) _ Handles btnCalculate.Click Dim a, b As Double a = CDbl(txtSideOne.Text) b = CDbl(txtSideTwo.Text) txtHyp.Text = CStr(Hypotenuse(a, b)) End Sub Function Hypotenuse(By Val a As Double, _ By Val b As Double) As Double Return Math.Sqrt(a ^ 2 + b ^ 2) End Function
29 / 50
Week 9: Chapter 6: Repetition (Loops) 6.1 Do Loops 6.2 Processing Lists of Data with Do Loops 6.3 For...Next Loops
Lesson 1: 6.1 Do Loops 6.2 Processing Lists of Data with Do Loops
Learning outcomes: - Be able to know how to Write repetition statements using do loops
Do Loop Syntax: Do While condition statement(s) Loop
Pseudocode and Flow Chart for a Do Loop
Example 1: Private Sub btnDisplay_Click(...) _ Handles btnDisplay.Click 'Display the numbers from 1 to 7 Dim num As Integer = 1 30 / 50
Do While num <= 7 lstNumbers.Items.Add(num) num += 1 'Add 1 to the value of num Loop MsgBox(num) End Sub
Example: Form
Example: Code Private Sub btnCalculate_Click(...) Handles btnCalculate.Click Dim balance As Double, numYears As Integer balance = CDbl(txtAmount.Text) Do While balance < 1000000 balance += 0.06 * balance numYears += 1 Loop txtWhen.Text = "In " & numYears & _ " years you will have a million dollars." End Sub
Example: Output
31 / 50
Lesson 2: 6.2 Processing Lists of Data with Do Loops Peek Method Counters and Accumulators
Peek Method Example 1: Display the Total Contents of a File (see page 266) Dim sr As IO.StreamReader = _ IO.File.OpenText("PHONE.TXT") lstNumbers.Items.Clear() Do While sr.Peek <> -1 name = sr.ReadLine phoneNum = sr.ReadLine lstNumbers.Items.Add(name & " " _ & phoneNum) Loop sr.Close()
Example 2: Form
Example 2: Partial Code Dim name, phoneNum As string Dim sr As IO.StreamReader= _ IO.File.OpenText(PHONE.TXT) Do While (name <> txtName.Text) And (sr.Peek <> -1) name = sr.ReadLine phoneNum = sr.ReadLine Loop If (name = txtName.text) Then txtNumber.Text = name & & phoneNum Else txtNumber.Text = name not found. End If sr.Close() 32 / 50
Counters and Accumulators File COINS.TXT
Example 3: Partial Code Dim numCoins As Integer = 0 Dim sum As Integer = 0 Dim coin As String Do While sr.Peek <> -1 coin = sr.ReadLine numCoins += 1 sum += CDbl(coin) Loop
Lesson 3: 6.3 ForNext Loops
ForNext Loop Syntax
Example 1: Code Dim pop as Double = 300000 Dim fmtStr As String = "{0,4}{1,12:N0}" For yr As Integer = 2008 To 2012 lstPop.Items.Add(String.Format( fmtStr, yr, pop) pop += 0.03 * pop Next
33 / 50
Example 1: Output
Example2: For i As Integer = 1 To 2 For j As Integer = 1 To 3 lstBox.Items.Add(i & * " & j & = " & i * j) Next Next
34 / 50
Week10: Chapter 10: Database Management and SQL 10.1 An Introduction to Databases 10.2 Relational Databases and SQL
Lesson 1: 10.1 An Introduction to Databases
Learning outcomes: Develop database applications to access a database with a data table
Sample Table Cities Table
Sample Table Countries Table
35 / 50
Add Connection Dialog Box
Database Explorer Window after Connection to MEGACITIES.MDB
36 / 50
Connecting with a DataTable Dim dt As New DataTable() Dim connStr As String = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=MEGACITIES.MDB" Dim sqlStr As String = "SELECT * FROM Cities" Dim dataAdapter As New _ OleDb.OleDbDataAdapter(sqlStr, connStr) dataAdapter.Fill(dt) dataAdapter.Dispose()
Example 1: Form
Example 1: Partial Code Dim dt As New DataTable() Dim rowIndex As Integer = 0 Private Sub frmCities_Load(...) Handles MyBase.Load Dim dt As New DataTable() Dim connStr As String = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=MEGACITIES.MDB" Dim sqlStr As String = "SELECT * FROM Cities" Dim dataAdapter As New _ OleDb.OleDbDataAdapter(sqlStr, connStr) dataAdapter.Fill(dt) dataAdapter.Dispose() UpdateTextBoxes() End Sub
Sub UpdateTextBoxes() 'Display contents of row specified by rowIndex variable txtCity.Text = CStr(dt.Rows(rowIndex)("city")) txtCountry.Text = CStr(dt.Rows(rowIndex)("country")) 37 / 50
txtPop2005.Text = CStr(dt.Rows(rowIndex)("pop2005")) txtPop2015.Text = CStr(dt.Rows(rowIndex)("pop2015")) End Sub
Private Sub btnNext_Click(...) Handles btnNext.Click 'Show the next record if current one is not the last If (rowIndex < dt.Rows.Count - 1) Then rowIndex += 1 'Increase rowIndex by 1 UpdateTextBoxes() End If End Sub
Private Sub btnPrevious_Click(...) Handles btnPrevious.Click 'Show previous record if current one is not the first If (rowIndex > 0) Then rowIndex = rowIndex - 1 UpdateTextBoxes() End If End Sub
Private Sub btnFind_Click(...) Handles btnFind.Click Dim cityName As String Dim cityFound As Boolean = False cityName=InputBox("Enter name of city to search for.") For i As Integer = 0 To (dt.Rows.Count - 1) If CStr(dt.Rows(i)("city")) = cityName Then cityFound = True rowIndex = i UpdateTextBoxes() End If Next If (Not cityFound) Then MessageBox.Show("Cannot find requested city") End If End Sub
38 / 50
Example 1: Output
Example 2: Form
Example 2: Code Private Sub btnShow_Click(...) Handles btnShow.Click Dim fmtStr As String="{0,-15}{1,-10}{2,7:N1}{3,7:N1}{4,7:P0}" Dim percentIncrease As Double (Six statements of boilerplate) lstDisplay.Items.Add(String.Format(fmtStr, "CITY", _ "COUNTRY", "2005", "2015", "INCR.")) For i As Integer = 0 To dt.Rows.Count - 1 percentIncrease = (CDbl(dt.Rows(i)("pop2015")) - _ CDbl(dt.Rows(i)("pop2005"))) / CDbl(dt.Rows(i)("pop2005")) lstDisplay.Items.Add(String.Format(fmtStr, dt.Rows(i)(0), _ dt.Rows(i)(1),dt.Rows(i)(2),dt.Rows(i)(3),percentIncrease)) Next End Sub
39 / 50
Example 2: Output
40 / 50
Week 11: Chapter 10: Database Management (Binding a listbox to a datatable)
Learning outcomes: Develop database applications to access a database with a listbox
Lesson 1: binding a listbox to a datatable
The following statement binds a list box to a data table: lstBox.DataSource = dt The contents of a specified field can be displayed in the list box by: lstBox.DisplayMember = "country"
Example: Form
Display the list of countries. When the user clicks on a country, its monetary unit should be displayed.
Example : Code Dim dt As New DataTable() Private Sub frmCountries_Load(...) Handles MyBase.Load (Last five statements of boilerplate) lstCountries.DataSource = dt 'Bind list box lstCountries.DisplayMember = "country" End Sub Private Sub lstCountries_SelectedIndexChanged(...) _ Handles lstCountries.SelectedIndexChanged txtMonetaryUnit.Text = _ CStr(dt.Rows(lstCountries.SelectedIndex)("monetaryUnit") End Sub
Learning outcomes: be able to know how to: - Show just the records that meet certain criteria - Join between two tables
Lesson 1: Four SQL Requests
1- Show the records of a table in a specified order SELECT * FROM Table1 ORDER BY field1 ASC or SELECT * FROM Table1 ORDER BY field1 DESC
2- Show just the records that meet certain criteria SELECT * FROM Table1 WHERE criteria
3- Make available just some of the fields SELECT field1, field2, . . ., fieldN FROM Table1 WHERE criteria
4- Join the tables together SELECT * FROM Table1 INNER JOIN Table2 ON foreign field = primary field WHERE criteria
Examples :
1- SELECT * FROM Countries WHERE country LIKE 'I%' ORDER BY pop2005 ASC
2- Show the records from Cities in alphabetical order based on the name of the city with SELECT * FROM Cities ORDER BY city ASC
43 / 50
3- Show the records from Cities in alphabetical order based first on the name of the country and, within each country group, the name of the city with SELECT * FROM Cities ORDER BY country, city ASC
4- Show the records from Cities in descending order based on the projected 2015 population, using SELECT * FROM Cities ORDER BY pop2015 DESC
5- Show the records for the Cities in India with SELECT * FROM Cities WHERE country = 'India'
6- Show the records from Cities whose 2015 population is projected to be at least 20 million, as in SELECT * FROM Cities WHERE pop2015 >= 20
7- Show the records from Cities whose name begins with the letter "D", with SELECT * FROM Cities WHERE city Like 'D%'
8- Show the records from the joined table in descending order of the populations of their countries, using SELECT * FROM Cities INNER JOIN Countries ON Cities.country = Countries.country ORDER BY Countries.pop2005 DESC
9- Show the records from the joined table whose monetary unit has "u" as its second letter with SELECT * FROM Cities INNER JOIN Countries ON Cities.country = Countries.country WHERE monetaryUnit Like '_u%' 44 / 50
10- Make available just the city and country fields of the table Cities, using SELECT city, country FROM Cities
11- Make available just the city and monetaryUnit fields of the joined table, as in SELECT city, monetaryUnit FROM Cities INNER JOIN Countries ON Cities.country = Countries.country
45 / 50
Week 13: Chapter 10: Database Management (Data Grid View/ Changing contents) - The DataGridView control - Changing the content of a database
Learning outcomes: - Develop database applications to access a database with a data table, datagridview , and change the contents of a database
Lesson 1: The DataGridView control
Example1: Form
Example1: Code Private Sub frmCities_Load(...) Handles MyBase.Load UpdateGrid( "Select * From Cities" ) End Sub Private Sub btnOrderbyPop_Click(...) Handles btnOrderbyPop.Click UpdateGrid ( "Select * From Cities Order By pop2005 ASC" ) End Sub Private Sub btnShowMonUnit_Click(...) _ Handles btnShowMonUnit.Click UpdateGrid( "SELECT city, Cities.country, " & _ "Cities.pop2005, monetaryUnit " & _ "FROM Cities INNER JOIN Countries " & _ "ON Cities.country=Countries.country " & _ "ORDER BY city ASC" ) End Sub 46 / 50
Sub UpdateGrid( By Val sqlStr As String ) Dim dt As New DataTable() Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source = MEGACITIES.MDB" Dim dataAdapter As New OleDb.OleDbDataAdapter(sqlStr, connStr) dataAdapter.Fill(dt) dataAdapter.Dispose() dgvDisplay.DataSource = dt End Sub
Example1: Output
Example 2: Form
Example 2: Code Private Sub btnFindCities_Click(...) _ Handles btnFindCities.Click UpdateGrid( "SELECT city FROM Cities WHERE" & _ "country = '" & txtCountry.Text & _ "' ORDER BY city ASC") 47 / 50
End Sub Sub UpdateGrid( By Val sqlStr As String) (Boilerplate, except for Dim sqlStr statement) If dt.Rows.Count = 0 Then MessageBox.Show( "No cities from that country "& "in the database" ) Else dgvDisplay.DataSource = dt End If End Sub
Example 2: Output
Lesson 2: Changing the Contents of a Database
48 / 50
Example 3: Form
Example 3: Partial Code Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=MEGACITIES.MDB" Dim sqlStr As String = "SELECT * FROM Cities" Dim dt As New DataTable() Private Sub btnLoad_Click(...) Handles btnLoad.Click dt.Clear() Dim dataAdapter As New OleDb.OleDbDataAdapter(sqlStr, connStr) dataAdapter.Fill(dt) dataAdapter.Dispose() dgvDisplay.DataSource = dt End Sub Private Sub btnSave_Click(...) Handles btnSave.Click Dim changes As Integer Dim dataAdapter As New OleDb.OleDbDataAdapter(sqlStr, connStr) Dim commandBuilder As New _ OleDb.OleDbCommandBuilder(dataAdapter) changes = dataAdapter.Update(dt) dataAdapter.Dispose() If changes > 0 Then MessageBox.Show(changes & " changed rows.") Else MessageBox.Show ("No changes made.") End If End Sub
Learning outcomes: - Write a program using insert sql statement - Develop applications with multiple forms - Design, create, test and debug fully functioning programs using the new Visual Basic.Net language
Lesson 1: insert, delete sql statement
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)
Delete from table name where condition
Example: form
Example: code Public Class Form1 Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\MEGACITIES.MDB" Private Sub Form1_Load(By Val sender As System.Object, By Val e As System.EventArgs) Handles MyBase.Load updateDataGrid() End Sub
Private Sub btnInsert_Click(By Val sender As System.Object, By Val e As System.EventArgs) Handles btnInsert.Click 50 / 50
Dim dt As New DataTable Dim sql As String = "Insert into cities values ('" & txtCity.Text & "','" & txtCountry.Text & "','" & txtPop2005.Text & "','" & txtPop2015.Text & "')" Dim adapter As New OleDb.OleDbDataAdapter(sql, conn) adapter.Fill(dt) updateDataGrid()
End Sub Sub updateDataGrid() Dim dt As New DataTable 'Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\MEGACITIES.MDB" Dim sql As String = "select * from cities" Dim adapter As New OleDb.OleDbDataAdapter(sql, conn) adapter.Fill(dt) DataGridView1.DataSource = dt End Sub
Private Sub Button2_Click(By Val sender As System.Object, By Val e As System.EventArgs) Handles Button2.Click
Dim dt As New DataTable Dim sql As String = "delete from cities where city='" & txtCity.Text & "'" Dim adapter As New OleDb.OleDbDataAdapter(sql, conn) adapter.Fill(dt) updateDataGrid()
End Sub
Private Sub DataGridView1_CellContentClick(By Val sender As System.Object, By Val e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick 'txtCity.Text = DataGridView1.CurrentRow.Cells(0).Value.ToString() 'txtCountry.Text = DataGridView1.CurrentRow.Cells(1).Value.ToString() 'txtPop2005.Text = DataGridView1.CurrentRow.Cells(2).Value.ToString() 'txtPop2015.Text = DataGridView1.CurrentRow.Cells(3).Value.ToString() End Sub
Private Sub DataGridView1_RowHeaderMouseDoubleClick(By Val sender As Object, By Val e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.RowHeaderMouseClick txtCity.Text = DataGridView1.CurrentRow.Cells(0).Value.ToString() txtCountry.Text = DataGridView1.CurrentRow.Cells(1).Value.ToString() txtPop2005.Text = DataGridView1.CurrentRow.Cells(2).Value.ToString() txtPop2015.Text = DataGridView1.CurrentRow.Cells(3).Value.ToString() End Sub