 |
Data Set Example Application: Watts A Loan |
|
|
|
This is a sample application for a fictitious company
that makes small loans to individuals and companies (loans for people who
need cash or money to purchase something like a musical instrument or
furniture).
|
To follow the instructions in this application, you should
be familiar with data sets of the .NET
Framework.
|
Practical
Learning: Creating the Application
|
|
- Start Microsoft Visual Studio and create a Windows Application named
WattsALoan1
- To create a new form, in the Solution Explorer, right-click
WattsALoan4 -> Add -> Windows Forms...
- Set the Name to LoanAllocations and click Add
- From the Data section of the Toolbox, click DataSet and click the
form
- Select the Untyped Dataset radio button and click OK
- In the Properties window, change the following characteristics:
DataSetName: dsLoanAllocations (Name): LoanAllocations
- Click Tables and click its ellipsis button
- To create a new table, click Add and change the properties as
follows:
TableName: Loan (Name): tblLoan
- Click Columns and click its ellipsis button
- Click Add 10 times and change the properties as follows:
| ColumnName |
(Name) |
| DateAllocated |
colDateAllocated |
| LoanNumber |
colLoanNumber |
| PreparedBy |
colPreparedBy |
| PreparedFor |
colPreparedFor |
| Principal |
colPrincipal |
| InterestRate |
colInterestRate |
| Periods |
colPeriods |
| InterestEarned |
colInterestEarned |
| FutureValue |
colFutureValue |
| MonthlyPayment |
colMonthlyPayment |
- In the Members list, click LoanNumber
- In the Properties list, double-click Unique to change its value to
True
|
Practical
Learning: Applying Data Types on Columns
|
|
- In the Members list, click Principal
- In the Properties list, click DataType, click the arrow of its combo
box and select System.Double
- In the same way, change the data types of the following columns:
| Member |
DataType |
| DateAllocated |
System.DateTime |
| LoanNumber |
System.String |
| PreparedBy |
System.String |
| PreparedFor |
System.String |
| Principal |
System.Double |
| InterestRate |
System.Double |
| Periods |
System.Double |
| InterestEarned |
System.Double |
| FutureValue |
System.Double |
| MonthlyPayment |
System.Double |
- In the Members list, click Principal
- In the Properties list, click DefaultValue and delete <DBNull>
- Type 0.00
- In the same way, change the default values of the following columns:
| Member |
DefaultValue |
| Principal |
0.00 |
| InterestRate |
8.75 |
| Periods |
36 |
- In the Members list, click FutureValue
- In the Properties list, click Expression and type Principal +
InterestEarned
- In the same way, change the data types of the following columns:
| Member |
Expression |
| InterestEarned |
Principal * (InterestRate / 100) * (Periods /
12) |
| FutureValue |
Principal + InterestEarned |
| MonthlyPayment |
FutureValue / Periods |
|
Practical
Learning: Nullifying a Column
|
|
- In the Members list, click DateAllocated
- In the Properties list, double-click the value of the AllowDBNull
field to set it to False
- In the Members list, click LoanNumber
- In the Properties list, double-click the value of the AllowDBNull
field to set it to False
- Click Close and click Close
- To create a new form, in the Solution Explorer, right-click
WattsALoan4 -> Add -> Windows Forms...
- Set the Name to Employees and click Add
- From the Data section of the Toolbox, click DataSet and click the
form
- Select the Untyped Dataset radio button and click OK
- In the Properties window, change the following characteristics:
DataSetName: dsEmployees (Name): Employees
- Click Tables and click its ellipsis button
- To create a new table, click Add and change the properties as
follows:
TableName: Employee (Name): tblEmployee
- Click Columns and click its ellipsis button
- Click Add 5 times and change the properties as follows:
| AllowDBNull |
ColumnName |
DefaultValue |
DataType |
Expression |
Unique |
(Name) |
| False |
EmployeeNumber |
|
|
|
True |
colEmployeeNumber |
| |
FirstName |
|
|
|
|
colFirstName |
| False |
LastName |
|
|
|
|
colLastName |
| |
FullName |
|
|
LastName + ', ' + FirstName |
|
colFullName |
| |
Title |
|
|
|
|
colTitle |
| |
HourlySalary |
8.75 |
System.Double |
|
|
colHourlySalary |
- Click Close and click Close
- Design the form as follows:
 |
| Control |
Text |
Name |
Other Properties |
| DataGridView |
|
dgvEmployees |
DataSource: dsEmployees DataMember: Employee |
| Button |
Close |
btnClose |
|
|
| Data Grid Columns |
| DataPropertyName |
HeaderText |
Width |
| EmployeeNumber |
Empl # |
65 |
| FirstName |
First Name |
65 |
| LastName |
Last Name |
65 |
| FullName |
Full Name |
120 |
| Title |
|
110 |
| HourlySalary |
Salary/hr |
60 |
|
- Double-click an unoccupied area of the form and implement the event
as follows:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WattsALoan4
{
public partial class Employees : Form
{
public Employees()
{
InitializeComponent();
}
private void Employees_Load(object sender, EventArgs e)
{
string strFilename = "employees.xml";
if (File.Exists(strFilename))
dsEmployees.ReadXml(strFilename);
}
}
}
- Return to the form and click an unoccupied area of its body
- In the Properties window, click the Events button and double-click
FormClosing
- Implement the event as follows:
private void Employees_FormClosing(object sender, FormClosingEventArgs e)
{
dsEmployees.WriteXml("employees.xml");
}
- Return to the form and double-click the Close button
- Implement the event as follows:
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
- Return to the form
- Under the form, right-click dsEmployees and click Copy
- Display the LoanAllocations form
- Right-click it and click Paste
- To create a new form, in the Solution Explorer, right-click
WattsALoan4 -> Add -> Windows Forms...
- Set the Name to Customers and click Add
- From the Data section of the Toolbox, click DataSet and click the
form
- Select the Untyped Dataset radio button and click OK
- In the Properties window, change the following characteristics:
DataSetName: dsCustomers (Name): Customers
- Click Tables and click its ellipsis button
- To create a new table, click Add and change the properties as
follows:
TableName: Customer (Name): tblCustomer
- Click Columns and click its ellipsis button
- Click Add 5 times and change the properties as follows:
| AllowDBNull |
ColumnName |
Unique |
(Name) |
| False |
AccountNumber |
True |
colAccountNumber |
| False |
FullName |
|
colFullName |
| |
EmailAddress |
|
colEmailAddress |
| |
PhoneNumber |
|
colPhoneNumber |
- Click Close and click Close
- Design the form as follows:
 |
| Control |
Text |
Name |
Other Properties |
| DataGridView |
|
dgvCustomers |
DataSource: dsCustomers DataMember: Customer |
| Button |
Close |
btnClose |
|
|
| Data Grid Columns |
| DataPropertyName |
HeaderText |
Width |
| AccountNumber |
Account # |
65 |
| FullName |
Full Name |
120 |
| EmailAddress |
Email Address |
120 |
| PhoneNumber |
Phone # |
90 |
|
- Double-click an unoccupied area of the form and implement the event
as follows:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WattsALoan4
{
public partial class Customers : Form
{
public Customers()
{
InitializeComponent();
}
private void Customers_Load(object sender, EventArgs e)
{
string strFilename = "customers.xml";
if (File.Exists(strFilename))
dsCustomers.ReadXml(strFilename);
}
}
}
- Return to the form and click an unoccupied area of its body
- In the Properties window, click the Events button and double-click
FormClosing
- Implement the event as follows:
private void Customers_FormClosing(object sender, FormClosingEventArgs e)
{
dsCustomers.WriteXml("customers.xml");
}
- Return to the form and double-click the Close button
- Implement the event as follows:
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
- Return to the form
- Under the form, right-click dsCustomers and click Copy
- Display the LoanAllocations form
- Right-click it and click Paste
- Design the form as follows:

|
| Control |
Text |
Name |
Other Properties |
| DataGridView |
|
dgvCustomers |
DataSource: dsCustomers DataMember:
Customer |
| Button |
Close |
btnClose |
|
|
| Data Grid Columns |
| DataPropertyName |
HeaderText |
Width |
DefaultCellStyle -> Format |
|
| DateAllocated |
Date Allocated |
|
Date Time |
|
| LoanNumber |
Loan # |
65 |
|
|
| PreparedBy |
Prepared By |
110 |
|
ColumnType: DataGridViewComboBoxColumn
DataSource: dsEmployees DisplayMember:
Employee.EmployeeNumber |
| PreparedFor |
Prepared For |
110 |
|
ColumnType: DataGridViewComboBoxColumn
DataSource: dsCustomers DisplayMember:
Customer.AccountNumber |
| Principal |
|
70 |
Currency |
|
| InterestRate |
Rate (%) |
65 |
Numeric |
|
| Periods |
Prd (Months) |
65 |
Numeric |
|
| InterestEarned |
Interest Earned |
|
Currency |
|
| FutureValue |
Future Value |
|
Currency |
|
| MonthlyPayment |
Pmt/Month |
|
Currency |
|
|
- Double-click an unoccupied area of the form and implement the event
as follows:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WattsALoan4
{
public partial class LoanAllocations : Form
{
public LoanAllocations()
{
InitializeComponent();
}
private void LoanAllocations_Load(object sender, EventArgs e)
{
string strFilename = "employees.xml";
if (File.Exists(strFilename))
dsEmployees.ReadXml(strFilename);
strFilename = "customers.xml";
if (File.Exists(strFilename))
dsCustomers.ReadXml(strFilename);
strFilename = "loans.xml";
if (File.Exists(strFilename))
dsLoanAllocations.ReadXml(strFilename);
}
}
}
- Return to the form and click an unoccupied area of its body
- In the Properties window, click the Events button and double-click
FormClosing
- Implement the event as follows:
private void LoanAllocations_FormClosing(object sender, FormClosingEventArgs e)
{
dsLoanAllocations.WriteXml("loans.xml");
}
- Return to the form and double-click the Close button
- Implement the event as follows:
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
- To create a new form, in the Solution Explorer, right-click
WattsALoan4 -> Add -> Windows Forms...
- Set the Name to Payments and click Add
- Display the Employees form
- Right-click dsEmployees and click Copy
- Display the Payments form
- Right-click it and click Paste
- Display the LoanAllocations form
- Right-click dsLoanAllocations and click Copy
- Display the Payments form
- Right-click it and click Paste
- From the Data section of the Toolbox, click DataSet and click the
Payments form
- Select the Untyped Dataset radio button and click OK
- In the Properties window, change the following characteristics:
DataSetName: dsPayments (Name): Payments
- Click Tables and click its ellipsis button
- To create a new table, click Add and change the properties as
follows:
TableName: Payment (Name): tblPayment
- Click Columns and click its ellipsis button
- Click Add 6 times and change the properties as follows:
| AllowDBNull |
ColumnName |
DataType |
DefaultValue |
Expression |
Unique |
(Name) |
| False |
PaymentNumber |
|
|
|
True |
colPaymentNumber |
| False |
PaymentDate |
System.DateTime |
|
|
|
colPaymentDate |
| False |
ReceivedBy |
|
|
|
|
colReceivedBy |
| False |
PaymentFor |
|
|
|
|
colPaymentFor |
| False |
PaymentAmount |
System.Double |
0.00 |
|
|
colPaymentAmount |
| |
Balance |
System.Double |
0.00 |
|
|
colBalance |
- Click Close and click Close
- Design the form as follows:
 |
| Control |
Text |
Name |
Other Properties |
| DataGridView |
|
dgvPayments |
DataSource: dsPayments DataMember:
Payment |
| Button |
Loans... |
btnLoans |
|
| Button |
Close |
btnClose |
|
|
| Data Grid Columns |
| DataPropertyName |
HeaderText |
Width |
DefaultCellStyle -> Format |
|
| PaymentNumber |
Pmt # |
55 |
|
|
| PaymentDate |
Pmt Date |
70 |
Date Time |
|
| ReceivedBy |
Received By |
|
|
ColumnType: DataGridViewComboBoxColumn
DataSource: dsEmployees DisplayMember:
Employee.EmployeeNumber |
| PaymentFor |
Payment For |
|
|
ColumnType: DataGridViewComboBoxColumn
DataSource: dsLoanAllocations DisplayMember:
Loan.LoanNumber |
| PaymentAmount |
Pmt Amt |
70 |
Currency |
|
| Balance |
|
80 |
Currency |
|
|
- Double-click an unoccupied area of the form and implement the event
as follows:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WattsALoan4
{
public partial class Payments : Form
{
public Payments()
{
InitializeComponent();
}
private void Payments_Load(object sender, EventArgs e)
{
string strFilename = "loans.xml";
if (File.Exists(strFilename))
dsLoanAllocations.ReadXml(strFilename);
strFilename = "payments.xml";
if (File.Exists(strFilename))
dsPayments.ReadXml(strFilename);
}
}
}
- Return to the form and click an unoccupied area of its body
- In the Properties window, click the Events button and double-click
FormClosing
- Implement the event as follows:
private void Payments_FormClosing(object sender, FormClosingEventArgs e)
{
dsPayments.WriteXml("payments.xml");
}
- Return to the form and double-click the Loans button
- Implement the event as follows:
private void btnLoans_Click(object sender, EventArgs e)
{
LoanAllocations frmLoans = new LoanAllocations();
frmLoans.Show();
}
- Return to the form and double-click the Close button
- Implement the event as follows:
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
- In the Solution Explorer, right-click Form1.cs and click Rename
- Type Central.cs and press Enter twice to display the form
- Design the form as follows:
 |
| Control |
Text |
Name |
| Button |
... |
btnPayments |
| Label |
Loan Payments |
lblPayments |
| Button |
... |
btnAllocations |
| Label |
Loan Allocations |
lblAllocations |
| Button |
... |
btnCustomers |
| Label |
Customers |
lblCustomers |
| Button |
... |
btnEmployees |
| Label |
Employees |
lblEmployees |
| Button |
Close |
btnClose |
|
- Double-click the top button and implement its event as follows:
private void btnPayments_Click(object sender, EventArgs e)
{
Payments frmPayments = new Payments();
frmPayments.ShowDialog();
}
- Return to the form and double-click the Loan Payments label
- Implement its event as follows:
private void lblPayments_Click(object sender, EventArgs e)
{
Payments frmPayments = new Payments();
frmPayments.ShowDialog();
}
- Return to the form and double-click the second button from top
- Implement its event as follows:
private void btnLoanAllocations_Click(object sender, EventArgs e)
{
LoanAllocations frmLoans = new LoanAllocations();
frmLoans.ShowDialog();
}
- Return to the form and double-click the Loan Allocations label
- Implement its event as follows:
private void lblLoanAllocations_Click(object sender, EventArgs e)
{
LoanAllocations frmLoans = new LoanAllocations();
frmLoans.ShowDialog();
}
- Return to the form and double-click the third button from top
- Implement its event as follows:
private void btnCustomers_Click(object sender, EventArgs e)
{
Customers frmClients = new Customers();
frmClients.ShowDialog();
}
- Return to the form and double-click the Customers label
- Implement its event as follows:
private void lblCustomers_Click(object sender, EventArgs e)
{
Customers frmBorrowers = new Customers();
frmBorrowers.ShowDialog();
}
- Return to the form and double-click the fourth button from top
- Implement its event as follows:
private void btnEmployees_Click(object sender, EventArgs e)
{
Employees frmStaff = new Employees();
frmStaff.ShowDialog();
}
- Return to the form and double-click the Employees label
- Implement its event as follows:
private void lblEmployees_Click(object sender, EventArgs e)
{
Employees frmClerks = new Employees();
frmClerks.ShowDialog();
}
- Return to the form and double-click the Close button from top
- Implement its event as follows:
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
- Execute the application
- Click the Employees label and create the following records:
| Employee # |
First Name |
Last Name |
Title |
Salary/hr |
| 7973-45 |
Bernard |
Wallow |
Account Manager |
24.85 |
| 2497-94 |
Justine |
Bogley |
Sales Representative |
12.75 |
| 2930-75 |
Nestor |
Rosenblatt |
Sales Representative |
14.25 |
- Close the form
- Click the Customers label and create the following records:
| Account # |
Full Name |
Email Address |
Phone Number |
| 937-497 |
Joan Fairbanks |
fairbie1288@hotmail.com |
(301) 937-5888 |
| 293-759 |
Ernie Lipps |
ernie.rowdie@comcast.net |
(703) 506-0000 |
| 502-850 |
Christopher Owens |
owenchris@yahoo.com |
(202) 529-6100 |
| 520-840 |
Ann Rowdy |
rowdiant@msn.com |
(301) 855-2090 |
| 602-475 |
Sarah Thompson |
lolitta448@yahoo.com |
(301) 870-7454 |
- Close the form
- Click the Loan Allocations label and create the following records:
| Date Allocated |
Loan # |
Prepared By |
Prepared For |
Principal |
Rate (%) |
Prd (Months) |
| 08/18/06 |
52-9739-5 |
2497-94 |
937-497 |
6500 |
16.25 |
|
| 10/26/2006 |
20-5804-8 |
7973-45 |
602-475 |
3260 |
|
|
| 02/06/07 |
77-3907-2 |
2497-94 |
502-850 |
25605 |
12.50 |
60 |
| 03/20/07 |
92-7495-4 |
2930-75 |
293-759 |
14800 |
|
48 |

- Close the form
- Click the Loan Payments label and create the following records:
| Pmt # |
Pmt Date |
Received By |
Payment For |
Pmt Amt |
Balance |
| 1001 |
10/25/06 |
2497-94 |
52-9739-5 |
268.58 |
9400.17 |
| 1002 |
11/30/06 |
2930-75 |
52-9739-5 |
268.58 |
9131.59 |
| 1003 |
12/24/2006 |
7973-45 |
20-5804-8 |
114.33 |
4001.42 |
| 1004 |
12/28/06 |
2497-94 |
52-9739-5 |
268.58 |
8863.01 |
| 1005 |
01/26/07 |
2497-94 |
20-5804-8 |
114.33 |
3887.09 |
| 1006 |
01/31/07 |
2930-75 |
52-9739-5 |
268.58 |
8594.43 |
| 1007 |
02/20/07 |
2497-94 |
20-5804-8 |
114.33 |
3772.76 |
| 1008 |
03/02/07 |
2930-75 |
52-9739-5 |
268.58 |
8325.85 |
| 1009 |
03/25/2007 |
2930-75 |
20-5804-8 |
114.33 |
3658.43 |
| 1010 |
04/25/07 |
7973-45 |
92-7495-4 |
416.25 |
19563.75 |
| 1011 |
04/28/07 |
2497-94 |
77-3907-2 |
693.47 |
40914.66 |
| 1012 |
04/28/07 |
7973-45 |
20-5804-8 |
114.33 |
3544.10 |
| 1013 |
05/01/07 |
7973-45 |
52-9739-5 |
268.58 |
8057.27 |
| 1014 |
05/26/07 |
2497-94 |
77-3907-2 |
693.47 |
40221.19 |
- Close the forms and return to your programming environment
|
|