Library Application – Windows Forms Project
Objective: Create a Windows forms based application to support the principal functions of a lending
library’s day-to-day operations. The end user of the application will be the librarian.
Summary: This project focuses on building the windows forms user interface layer, the business tier
layer and the data access tier layer. It demonstrates the .NET techniques listed below:
• User input validation, using error provider and various event handlers.
• Data binding to a data grid control and related manipulation.
• Middle tier business tier for scalability.
• MDI application format.
• Effective exception handling.
• Regular expressions are used for input validation.
• Stored procedures written in T-SQL (SQL 2005)
• Custom messages on SQL level implemented.
• Stored procedures accessed through
• Entities for library operations created and
• Result sets from the database retrieved and
• Strong named DataSets created and manipulated.
The basic functions of the application are as follows:
• Add new members to the library. A differentiation
is made between adult and juvenile members.
Adult members are 18 or older.
• View member information such as address, phone
number, membership expiration date, and books
currently checked out.
• Check out available books.
• Check in books.
It was created as a multi-tier application with the following
• User interface – (WinClient)
• Business tier – (LibraryBusiness and Entities)
• Data Access layer – (DataAccess)
• SQL Server DB – Location for all data
The application’s Solution Explorer can be seen to the
right. The user interface handles all data entry from the
librarian. The data is validated by the business tier before
proceeding to the database via the data access layer. All
library data resides in a SQL Server database.
Screen shots of the application in use
Member information can be
retrieved by entering the member’s
ID number on the member
information screen and clicking the
Get Member button. The data entry
is validated to accept only an
integer by means of a regular
expression used in a static validator
method in the business tier. The
member’s information is returned to
the form and checked out items are
displayed on the DataGrid control
from a DataSet. This DataSet is
created from the data access layer
by means of an SQL stored
procedure. If no member if found
the librarian is warned with the
status strip control.
Items can be also be checked
back in from this window. The
librarian highlights the items from
the DataGrid and clicks the Check
In Selected Items button. Multiple
items can be checked in at once.
A DataSet containing each of the
selected items is created and sent
to the data access layer where a
stored procedure is run against
the database. If the DataGrid is
empty and the button is clicked
the status strip control reminds the
user that no items have been
selected to be checked in. If the
button is clicked and the DataGrid
is filled with no selected items the
status strip control will provide the
An item can be checked out from the member information screen by selecting Check Book Out from
the Member Services menu. Input the ISBN and copy number in the dialog window and click OK.
The librarian is then prompted to verify that the title is correct to proceed with the check out. The
CheckOut stored procedure is accessed through the data access tier to add a record to the loan
table signifying an item has been checked out. This record contains member information, book
information, the check out date, and the check in date. Members are allowed to have 4 items
checked out at any given time. The application is designed to refuse additional check outs. The
application also refuses check outs to patrons with expired memberships.
New members can be
added to the library.
Applicants 18 or older
are considered adults
and need to be enrolled
using the AddAdult
form. First name, last
name, street, city, and
zip code are required
fields and must be
entered with a particular
format. Data entry is
validated through the
business layer before
new members are
added to the database.
Juvenile members are
added based on their
member. The same
data entry rules that
apply to the adult
apply to the juvenile
and validation takes
place from the same
set of static methods.
In addition, there must
be supplied a valid
adult member ID
number and a valid
birthdate or the
member is not added
to the database.