You are on page 1of 74

FINGER ATM ABSTRACT

Now-a-days in the modern world, Computer is the most essential part in all the Media. All the things computerized with different types of software developed by various companies. Even though there is release of different software in a day, only few of them is getting flourished with its real efficiency. One of them is ASP.NET. Besides these things, this Website is the latest one. So our system is implemented using this site. The motive of our system is to prepare a web application on Finger ATM. Our

system provides two types of authentications, first one is normal authentication and another one is authentication with finger print. This type of authentication provides more security for all. Users. The main objective of this system is to develop system that will increase the ATM security. The software t be designed will control a simulated automated teller machine(ATM) with a customer console for interaction with the customer. The ATM will communicate with the bank computer over an appropriate communication link. The ATM will service one customer at a time. A customer will be required to enter a login id and validate his finger print and both will be sent to the bank for validation as part of each transaction. This makes the developed ATM software more secure as compared to the software that authenticates the user merely by using a PIN or password.

INTRODUCTION
Here in this project we are going provide the at most security since it is taking the FINGER PRINTS as the authentication for our account. The main objective of this paper is. To integrate the fingerprint in access control for ATM system. To purpose a framework for the ATM system using fingerprints verification

So whenever we want to access our account first we have to press the finger on the finger print scanner. Scanner is interfaced to the micro controller with the serial interfacing. The micro controller reads the data from the scanner. The micro controller allows those users, who are authorized to operate the account. If any unauthorized user tries to operate the account the micro controller switches on the security alarm. The total information about the account holders is stored in the EEPROM. Keypad is used to enter the password to operate the account or Locker. In present days, computer becomes a main part of human beings for storing information. This information is up to some extent is a secured one. For example the details of employees and students etc. The authority person may only change the details. For this protection we are going to provide a password for the pcs. This is secure up to some extent only because there may be a chance of revealing the password or sometimes the authorized person may forgot the password. So we have to provide security for PCs with a unique and simple to remember identification. One of such identification is the FINGER PRINT. Fingerprint Scanner is a device for computer Security featuring superior performance,

MODULE DESCRIPTION Admin When admin login, he saw the customers database, means how many users are authenticated to use this website and how many users are transact amount every day, and new transaction are view status.

User User entered into with his username and password, when he entered into this, he saw amount are available today, how much amount can be transaced,view the details when amount been transaction and user can also report the query in transaction. Username Password Amount details Transaction details View status Reports

Transaction User Can View The Details Of Transaction While Amount Withdrawing, And How Much Amount In Our Account Saving Current account Withdrawal Enquiry

View Status Admin and user can view the details of the account,can see all the status of account.

Reports User can report if any dissatisfaction in transaction or service provided by the admin.

SYSTEM ANALYSIS
PROPOSED SYSTEM

In this project the fingerprint sensor sense the thumb impression of the corresponding person and that image will be compared with registered image, if the both images are unique, then the finger print device activates particular task like access to the system, identification of the customer. In case the scanned image do not match with registered image, or if the information provided by the user is incorrect or mismatch in finger prints is detected then access is denied and device will send out message to indicate unauthorized person is accessing ATM machine. It will be easy for security officer or bank staffs to identify specific ATM and place so easy identify the criminal.

ADVANTAGES Prevents unauthorized use or access Adds a higher level of security to an identification process Eliminates the burden and bulk of carrying ID cards or remembering Pins Heightens overall confidence of business processes dependent on personal identification Small amount of finger vein data required enables fast authentication and small, compact devices. Use of the system in conjunction with an IC card ensures high security. In case of injury, vein patterns of multiple fingers can be recorded

EXISTING SYSTEM

customers using ATM machines, in most country existing ATM machines system use magnetic card reader, customer is identified by inserting ATM card with magnet stripe or plastic smart card with a chip that contain a unique information such as card number and some security parameters, Authentication is provided by the bank customer (user) entering personal

identification pin (Password), customer can access bank account in order to make cash withdraw or other services provided by the bank. Cases of card fraud is another problem once user's bank card is lost and the password is stolen, or simply steal a customer's card along with its PIN (Password) the criminal will draw all cash in the shortest time, which will bring enormous financial losses to customer, this type of fraud has spread globally.

DISADVANTAGE Cannot provided in rural areas. Provided various constraints. Limitation of cash withdrawal. Cash deposit faculty deposit. Possibility of misusing ATM card. Loss of personal touch with the bank.

SYSTEM SPECIFICATION
HARDWARE REQUIREMENTS Pentium-IV(Processor). 256 MB Ram 512 KB Cache Memory Hard disk 10 GB Microsoft Compatible 101 or more Key Board

SOFTWARE REQUIREMENTS

Operating System

Windows XP

Programming language : . NET Web-Technology Front-End Back-End Web Server : : : : ASP.NET 2.0 C#.NET Sql Server 2000 IIS

Fingerprint recognition

A fingerprint recognition system is done using three steps known as Image acquisition, Minutiae extraction and Minutiae matching. The block diagram of basic fingerprint recognition system is shown below Block diagram of basic fingerprint recognition

The first step was the acquisition of fingerprint image by above device mentioned in the algorithm, and the results could be sent to the following process. Secondly, pre-processing the images acquired. After obtain the fingerprint image, it must be pre-processing. Generally, preprocessing of one's is filtering, histogram computing, image enhancement and image binarization. Lastly, the characteristic value was extracted, and the results of the above measures would

Be compared with the Information of owner's fingerprint in the database so as to verify whether the character is matched, and then the system returned the results matched or not. Fingerprints are one of those bizarre twists of nature. Human beings happen to have built-in, easily accessible identity cards. You have a unique design, which represents you alone, literally at your fingertips, fingerprints are a unique marker for a person, even an identical twin. Fingerprints are one of many forms of biometrics, used to identify individuals and verify their identity. This part touches on two major classes of algorithms and four sensor designs (optical, ultrasonic, passive capacitance, and active capacitance) The analysis of fingerprints for matching purposes generally requires the comparison of several features of the print pattern. These include patterns, which are aggregate characteristics of ridges, and minutia points, which are unique features found within the patterns It is also necessary to know the structure and properties of human skin in order to successfully employ some of the imaging technologies. The three basic patterns of fingerprint ridges are the arch, loop, and whorl: The ridges enter from one side of the finger, rise in the center forming an arc, and then exit the other side of the finger. ii. Loop: The ridges enter from one side of a finger, form a curve, and then exit on that same side.iii. Whorl: Ridges form circularly around a central point on the finger

ABOUT THE SOFTWARE Microsoft .Net Framework The .NET Framework is a new computing platform that simplifies application development in the highly distributed environment of the Internet. The .NET Framework is designed to fulfill the following objectives: To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely. To provide a code-execution environment that minimizes software deployment and versioning conflicts. To provide a code-execution environment that guarantees safe execution of code, including code created by an unknown or semi-trusted third party. To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments. To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications. To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code. The .NET Framework has two main components: the common language runtime and the .NET Framework class library. The common language runtime is the foundation of the .NET Framework. You can think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remoting, while also enforcing strict type safety and other forms of code accuracy that ensure security and robustness. In fact, the concept of code management is a fundamental principle of the runtime. Code that targets the runtime is known as managed code, while code that does not target the runtime is known as unmanaged code. The class library, the other main component of the .NET Framework, is a comprehensive, object-oriented collection of reusable types that you can use to develop applications ranging from traditional command-line or graphical user interface (GUI) applications to applications based on the latest innovations provided by ASP.NET, such as Web Forms and XML Web services.

The .NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that can exploit both managed and unmanaged features. The .NET Framework not only provides several runtime hosts, but also supports the development of third-party runtime hosts. For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. ASP.NET works directly with the runtime to enable Web Forms applications and XML Web services, both of which are discussed later in this topic. Internet Explorer is an example of an unmanaged application that hosts the runtime (in the form of a MIME type extension). Using Internet Explorer to host the runtime enables you to embed managed components or Windows Forms controls in HTML documents. Hosting the runtime in this way makes managed mobile code (similar to Microsoft ActiveX controls) possible, but with significant improvements that only managed code can offer, such as semi-trusted execution and secure isolated file storage. The following illustration shows the relationship of the common language runtime and the class library to your applications and to the overall system. The illustration also shows how managed code operates within a larger architecture. Features of the Common Language Runtime The common language runtime manages memory, thread execution, code execution, code safety verification, compilation, and other system services. These features are intrinsic to the managed code that runs on the common language runtime. With regards to security, managed components are awarded varying degrees of trust, depending on a number of factors that include their origin (such as the Internet, enterprise network, or local computer). This means that a managed component might or might not be able to perform file-access operations, registry-access operations, or other sensitive functions, even if it is being used in the same active application.

The runtime enforces code access security. For example, users can trust that an executable embedded in a Web page can play an animation on screen or sing a song, but cannot access their personal data, file system, or network. The security features of the runtime thus enable legitimate Internet-deployed software to be exceptionally featuring rich. The runtime also enforces code robustness by implementing a strict type- and codeverification infrastructure called the common type system (CTS). The CTS ensures that all managed code is self-describing. The various Microsoft and third-party language compilers generate managed code that conforms to the CTS. This means that managed code can consume other managed types and instances, while strictly enforcing type fidelity and type safety. In addition, the managed environment of the runtime eliminates many common software issues. For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. This automatic memory management resolves the two most common application errors, memory leaks and invalid memory references. The runtime also accelerates developer productivity. For example, programmers can write applications in their development language of choice, yet take full advantage of the runtime, the class library, and components written in other languages by other developers. Any compiler vendor who chooses to target the runtime can do so. Language compilers that target the .NET Framework make the features of the .NET Framework available to existing code written in that language, greatly easing the migration process for existing applications. While the runtime is designed for the software of the future, it also supports software of today and yesterday. Interoperability between managed and unmanaged code enables developers to continue to use necessary COM components and DLLs. The runtime is designed to enhance performance. Although the common language runtime provides many standard runtime services, managed code is never interpreted. A feature called justin-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it is executing. Meanwhile, the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to further increase performance.

Finally, the runtime can be hosted by high-performance, server-side applications, such as Microsoft SQL Server and Internet Information Services (IIS). This infrastructure enables you to use managed code to write your business logic, while still enjoying the superior performance of the industry's best enterprise servers that support runtime hosting. Internet Internet - The world largest computer network. It is precisely being called as Network of networks. The various separate network in the world are interlinked to form one entity that are communicated through a Protocol usually TCP/IP (Transmission Control Protocol/Internet Protocol). The Internet is also known as CYBERSPACE,

Information super highway

A set of computer networks, made up of a large number of smaller networks, using different networking protocols. The world's largest computing network consisting of over two million computers supporting over 20 million users in almost 200 different countries. The Internet is growing a phenomenal rate between 10 and 15 percent. So any size estimates are quickly out of date.

Internet was originally established to meet the research needs of the U.S Defence Industry. But it has grown into a huge global network serving universities, academic researches, commercial interest and Government agencies, both in the U.S and Overseas. The Internet uses TCP/IP protocols and many of the Internet hosts run the Unix Operating System.

HTML HTML (Hyper Text Markup Language) is the language that is used to prepare documents for online publications. HTML documents are also called Web documents, and each HTML document is known as Web page. A page is what is seen in the browser at any time. Each Web site, whether on the Internet or Intranet, is composed of multiple pages. And it is possible to switch among them by following hyperlinks. The collection of HTML pages makes up the World Wide Web.

A web pages is basically a text file that contains the text to be displayed and references of elements such as images, sounds and of course hyperlinks to other documents. HTML pages can be created using simple text editor such as Notepad or a WYSIWYG application such as Microsoft FrontPage.In either case the result is a plain text file that computers can easily exchange. The browser displays this text file on the client computer.

"Hypertext" is the jumping frog portion. A hyperlink can jump to any place within your own page(s) or literally to anyplace in the world with a 'net address (URL, or Uniform Resource Locator.) It's a small part of the html language.

Oracle 9i - SQL, PL/SQL Database Management System A Database Management System is essentially a collection of interrelated data and set of programs to access this data. This collection of data is called data base. The Primary set of a DBMS is to provide a convenient environment to retrieve and store database information. Database System supports single user and multi-user environment. While on one hand DBMS permits only one person to access the database at a given time, on the other RDBMS allows many users simultaneous access to the database.

Introduction to Oracle Every business enterprise maintains large volumes of data for its operations. With more and more people accessing this data for its operations. With more and more people accessing this data for their work need to maintain its integrity and relevance increases. Normally, with the traditional methods of storing data and information in files, the chances that data loses its integrity and validity are very high. Oracle is an Object Relational database Management System (ORDBMS). It offers capabilities of both relational and object-oriented database systems.

SQL*Plus

SQL*Plus is a Structured Query Language supported by Oracle. Through SQL*Plus we can store, retrieve, edit, enter and run SQL commands and PL/SQL blocks. Using SQL*Plus we can perform calculations, list column definitions for table and can also format query results in the form of a report.

PL/SQL PL/SQL is an extension of SQL. PL/SQL block can contain any number of SQL statements integrated with flow of control of control statements. Thus PL/SQL combines the data manipulating power of SQL with data processing power of procedural languages.

Introduction to SQL SQL was invented and developed by IBM in early 1970s. SQL stands for Structured Query Language.In order to communicate with the databases SQL supports the following categories of commands

Data Definition Language -create, alter, and drop commands. Data Manipulation Language -insert, select, delete and update commands. Transaction Control Language -commit, savepoint and rollback commands. Data Control Language -grant and revoke commands.

The following are the advantages of SQL Non-procedural language, because more than one record can be accessed rather than one record at a time. It is the common language for all relational databases. In other words it is portable and requires very few modifications so that it can work on other databases. Very simple commands for querying, inserting , deleting and modifying data and objects.

Oracle 9i

Occasionally, compute technology makes a dramatic break with the past the relational model of database management, with its simple tabular data structures and powerful data manipulation operation is one such revolution the relational model has helped to focus computer science research on the problems of data management and relational database management system products resulted in tremendous improvements in accessing data and developing applications.

Another revolution in computer technology client server computing took place in the last decade with the spread of mini computers and microcomputers these highly cost effective and flexible open systems have made client server computing possible.

The hardware changes were accompanied by significant changes in software technology modern graphical user interfaces increasingly replacing traditional character mode screens providing dramatic gains in case of use and flexibility. New application development tools reduce and may one day eliminate all together the need for traditional programming.

Today most companies are designing and using applications that employ a client server architecture in which the application runs in the users PC or works station and accesses a centrally maintained and managed file or database server. This approach explodes the client machines ability to provide highly responsive and intuitive presentation services while using a powerful server to manage shared data securely and efficiently.

In 1979 a tiny Silicon Valley company introduce oracle the first commercial relational database incorporating the SQL data access language. Today Oracle Corporation is the worlds largest supplier of database management system associated products. Oracle version5 released in 1985 was the very first client server database system. Now oracle 8i is the latest version of the oracle database server. This product the industrys most advanced product implementing both the extended relational model and the client/server architecture.

Oracle 8i include a full featured and government certified implementation of the ANSI/ISO standard SQL language. The oracle 8i server can be an active part of applications enforcing data integrity and business rules through declaratives means as well as through the industrial strength distributed database facilities, enabling enterprise wide access to data to matter where it is stored or on performs and reliability of on line transaction processing what kinds of platforms, last but nor least oracle 8i `maximizes the applications through a range of architectural features such as row level locking online back up and recovery and support for a wide variety of platforms. Oracle Corporation is also a leader in another revolution taking place in computer topology; the emerging use of parallel computing platforms, which can deliver unprecedented levels of performance with significant cost effectiveness.

These platforms are constructed of low cost components with tens hundreds or over thousands of highly interconnected independent CPU each with its own memory. The newest updates of oracle 8i exploit the power of parallel platforms for processing set of records a common requirement in relational databases.

INTERNET INFORMATION SERVER (IIS)

A web server is a program connected to the world wide web(www) that furnishes resources from the web browser. Microsoft IIS is a web server integrated with Windows.NET server that makes it easy to publish information and bring business application to the web.

Because of its tight integration with windows NT server, IIS guarantees the network administrator and application developer the same security, Networking and administrator functionality as windows NT server. Above and beyond its use of familiar Windows NT server Tools and functionality, IIS also has built-in capabilities to help administer secure websites, and to develop server-intensive web application.

Features Of Iis

IIS provides integrated security and access to a wide range of content, work seamlessly with COM components, and has a graphical interface-the Microsoft Management Console (MMC) that you can use to create and manage your ASP application.

IIS Provides Integrated Security

On the internet, most sites allow anybody to connect to the site. The exceptions are commercialists where you pay a one time, monthly fee to access the site. Sites that are restrict the access called secured site.Secured site use either integrated security or login, password security. IIS support both of these methods.

IIS provides Access to Content All web servers can deliver HTML files, but they differ widely in how they treat other types of content. Most servers let you add and modify Multi-purpose Internet Mail Extensions (MMIE) types, but integrates directly into the windows registry. That means IIS natively understands how to treat most common windows file format, such as text(TXT) files, application initialization(INI) files, executable(EXE) files and many others.

IIS provides an Interface FOR COM You can control many parts of IIS using COM>IIS exposes many of the servers configuration settings via the IIS Admin objects. These objects are accessible from ASP and other languages. That means you can adjust server configuration and create virtual directories and webs programmatically. IIS 4 and higher store settings and web information in a spoil database called the Metabase. You can use the IIS Admin objects to create new sites and virtual directories be alter the properties of existing sites and virtual directories.

Iis architectures overview

IIS is a core product, which means that it is designed to work closely with many other products, including all products in the Windows NT Server 4.0 Option pack. The following figure shows the relationship between IIS and other products installed as part of the Windows NT Server 4.0 Option pack.

Security For Iis Application

IIS provides three authentication schemes to control access to ITS resoures: Anonymous, Basic and Windows NT challenge/Response.Each of these schemes had different effect on the security context of an application launched by ITS. This includes ISAPI extension agents, COT applications, IDC scripts and future scripting capabilities.

Access Privileges

IIS provides several new access levels. The following values can set the type of access allowed to specific directories: Read Write Script Execute Log Access Directory Browsing.

IIS Website Administration

Administering websites can be time consuming and costly, especially for people who manage large internet Service Provider(ISP)Installations. to save time and money Sips support only large company web siesta the expense of personal websites. But is there a cost-effective

way to support both? The answer is yes, if you can automate administrative tasks and let users administer their own sites from remote computers.This solution reduces the amount of time and money it takes to manually administer a large installation, without reducing the number of web sites supported. Microsoft Internet Information server (IIS) version 4.0 offers technologies to do this Admin objects built on top of Active Directory service Interface(ADS))

With these technologies working together behind the scenes, the person can administers sites from the command line of central computer and can group frequently used commands in batch files.Then all user need to do is run batch files to add new accounts, change permissions, add a virtual server to a site and many other tasks. .Net Framework The .NET Framework is many things, but it is worthwhile listing its most important aspects. In short, the .NET Framework is A Platform designed from the start for writing Internet-aware and Internet-enabled applications that embrace and adopt open standards such as XML, HTTP, and SOAP. A Platform that provides a number of very rich and powerful application development technologies, such as Windows Forms, used to build classic GUI applications, and of course ASP.NET, used to build web applications.A Platform with an extensive class library that provides extensive support for date access (relational and XML), a director services, message queuing, and much more.

A platform that has a base class library that contains hundreds of classes for performing common tasks such as file manipulation, registry access, security, threading, and searching of text using regular expressions.A platform that doesnt forget its origins, and has great interoperability support for existing components that you or third parties have written, using COM or standard DLLs.A Platform with an independent code execution and management environment called the Common Language Runtime(CLR), which ensures code is safe to run, and provides an abstract layer on top of the operating system, meaning that elements of the .NET framework can run on many operating systems and devices.

ASP.NET

ASP.NET is part of the whole. NET framework, built on top of the Common Language Runtime (also known as the CLR) - a rich and flexible architecture, designed not just to cater for the needs of developers today, but to allow for the long future we have ahead of us. What you might not realize is that, unlike previous updates of ASP, ASP.NET is very much more than just an upgrade of existing technology it is the gateway to a whole new era of web development.

ASP.NET is a feature at the following web server releases

Microsoft IIS 5.0 on WINDOWS 2000 Server Microsoft IIS 5.1 on WINDOWS XP

ASP.NET has been designed to try and maintain syntax and run-time compatibility with existing ASP pages wherever possible. The motivation behind this is to allow existing ASP Pages to be initially migrated ASP.NET by simply renaming the file to have an extension of .aspx. For the most part this goal has been achieved, although there are typically some basic code changes that have to be made, since VBScript is no longer supported, and the VB language itself has changed.

Some of the key goals of ASP.NET were to Remove the dependency on script engines, enabling pages to be type safe and compiled. Reduce the amount of code required to develop web applications. Make ASP.NET well factored, allowing customers to add in their own custom functionality, and extend/ replace built-in ASP.NET functionality. Make ASP.NET a logical evolution of ASP, where existing ASP investment and therefore code can be reused with little, if any, change. Realize that bugs are a fact of life, as ASP.NET should be as fault tolerant as possible.

Benefits of ASP.NET

The .NET Framework includes a new data access technology named ADO.NET, an evolutionary improvement to ADO. Though the new data access technology is evolutionary, the classes that make up ADO.NET bear little resemblance to the ADO objects with which you might be familiar. Some fairly significant changes must be made to existing ADO applications to convert them to ADO.NET. The changes don't have to be made immediately to existing ADO applications to run under ASP.NET, however.

ADO will function under ASP.NET. However, the work necessary to convert ADO applications to ADO.NET is worthwhile. For disconnected applications, ADO.NET should offer performance advantages over ADO disconnected record sets. ADO requires that transmitting and receiving components be COM objects. ADO.NET transmits data in a standard XML-format file so that COM marshaling or data type conversions are not required.

ASP.NET has several advantages over ASP.

The following are some of the benefits of ASP.NET: Make code cleaner. mprove deployment, scalability, and reliability. Provide better support for different browsers and devices. Enable a new breed of web applications.

VB Script
VB Script, sometimes known as Visual Basic Scripting Edition, is Microsofts answer to Java Script. Just as Java Scripts syntax loosely based on Java. VB Scripts syntax is loosely based on Microsoft Visual Basic a popular programming language for Windows machines. Like Java Script, VB Script is a simple scripting and we can include VB Script statements within an HTML document. To begin a VB Script, we use the <script LANGUAGE=VB Script>tag. VB Script can do many of the same things as Java Script and it even looks similar in some

cases.It has two main advantages:For these who already know Visual Basic, it may be easier to learn than Java Script.It is closely integrated with ActiveX, Microsofts standard for Webembedded applications.VB Scripts main disadvantage is that only Microsoft Internet Explorer supports it. Both Netscape and Internet Explorer, on the other hand, support Java Script is also a much more popular language, and we can see it in use all over the Web.

ActiveX ActiveX is a specification develops by Microsoft that allows ordinary Windows programs to be run within a Web page. ActiveX programs can be written in languages such as Visual Basic and they are complied before being placed on the Web server.ActiveX application, called controls, are downloaded and executed by the Web browser, like Java applets. Unlike Java applets, controls can be installed permanently when they are downloaded; eliminating the need to download them again. ActiveXs main advantage is that it can do just about anything. This can also be a disadvantage:

Several enterprising programmers have already used ActiveX to bring exciting new capabilities to Web page, such as the Web page that turns off your computer and the Web page that formats disk drive.Fortunately, ActiveX includes a signature feature that identifies the source of the control and prevents controls from being modified. While this wont prevent a control from damaging system, we can specify which sources of controls we trust.

ActiveX has two main disadvantages It isnt as easy to program as scripting language or Java. ActiveX is proprietary. It works only in Microsoft Internet Explorer and only Windows platforms.

DATABASE DESIGN ADO.NET

ADO.NET provides consistent access to data sources such as Microsoft SQL Server, as well as data sources exposed via OLE DB and XML. Data-sharing consumer applications can use ADO.NET to connect to these data sources and retrieve, manipulate, and update data.

ADO.NET cleanly factors data access from data manipulation into discrete components that can be used separately or in tandem. ADO.NET includes .NET data providers for connecting to a database, executing commands, and retrieving results. Those results are either processed directly, or placed in an ADO.NET Dataset object in order to be exposed to the user in an ad-hoc manner, combined with data from multiple sources, or remote between tiers. The ADO.NET Dataset object can also be used independently of a .NET data provider to manage data local to the application or sourced from XML.

Why ADO.NET?

As application development has evolved, new applications have become loosely coupled based on the Web application model. More and more of today's applications use XML to encode data to be passed over network connections. Web applications use HTTP as the fabric for communication between tiers, and therefore must explicitly handle maintaining state between requests. This new model is very different from the connected, tightly coupled style of programming that characterized the client/server era, where a connection was held open for the duration of the program's lifetime and no special handling of state was required.

In designing tools and technologies to meet the needs of today's developer, Microsoft recognized that an entirely new programming model for data access was needed, one that is built upon the .NET Framework. Building on the .NET Framework ensured that the data access technology would be uniformcomponents would share a common type system, design patterns, and naming conventions.

ADO.NET was designed to meet the needs of this new programming model: disconnected data architecture, tight integration with XML, common data representation with the ability to combine data from multiple and varied data sources, and optimized facilities for interacting with a database, all native to the .NET Framework.

Leverage Current ADO Knowledge

Microsoft's design for ADO.NET addresses many of the requirements of today's application development model. At the same time, the programming model stays as similar as possible to ADO, so current ADO developers do not have to start from scratch in learning a brand new data access technology. ADO.NET is an intrinsic part of the .NET Framework without seeming completely foreign to the ADO programmer.

ADO.NET coexists with ADO. While most new .NET applications will be written using ADO.NET, ADO remains available to the .NET programmer through .NET COM interoperability services. For more information about the similarities and the differences between ADO.NET and ADO.ADO.NET provides first-class support for the disconnected, n-tier programming environment for which many new applications are written. The concept of working with a disconnected set of data has become a focal point in the programming model. The ADO.NET solution for n-tier programming is the Dataset. DOT NET DATABASE CONNECTIVITY (ADO.NET) ADO.NET uses a multilayered architecture that revolves around a few key concepts, such as Connection, Command, and Dataset objects. However, the ADO.NET architecture is quite a bit different from classic ADO. One of the key differences between ADO and ADO.NET is how they deal with the challenge of different data sources. In ADO, programmers always use a generic set of objects, no matter what the underlying data source is. For example, if you want to retrieve a record from an Oracle database, you use the same Connection class you would use to tackle the same task with SQL Server. This isnt the case in ADO.NET, which uses a data provider model.

ADO.NET Data Providers A data provider is a set of ADO.NET classes that allows you to access a specific database, execute SQL commands, and retrieve data. Essentially, a data provider is a bridge between your application and a data source. The classes that make up a data provider include the following:

Connection: You use this object to establish a connection to a data source. Command: You use this object to execute SQL commands and stored procedures. Data Reader: This object provides fast read-only, forward-only access to the data retrieved from a query.

Data Adapter This object performs two tasks. First, you can use it to fill a Dataset (a disconnected collection of tables and relationships) with information extracted from a data source. Second, you can use it to apply changes to a data source, according to the modifications youve mad e in a Dataset. ADO.NET doesnt include generic data provider objects. Instead, it includes different data providers specifically designed for different types of data sources. Each data provider has a specific implementation of the Connection, Command, DataReader and DataAdapter classes thats optimized for a specific RDBMS (Relational database management system). For example, if you need to create a connection to a SQL Server database, youll use a connection class named SQL Connection. One of the key underlying ideas of the ADO.NET provider model is that its extensible. In other words, developers can create their own provider for proprietary data sources. In fact, numerous proof-of-concepts examples are available that show how you can easily create custom ADO.NET providers to wrap no relational data stores, such as the file system or a directory service. Some third-party vendors also sell custom providers for .NET. The .NET Framework is bundled with a small set of four providers:

SQL Server Provider Provides optimized access to a SQL Server database(version 7.0 or later). OLEDB Provider Provides access to any data source that has an OLEDB driver. This includes SQL Server databases prior to version 7.0. Oracle Provider Provides optimized access to an Oracle database(version 8i or later). ODBC Provider Provides access to any data source that has an ODBC driver. RDBMS CONCEPTS DATA ABSTRACTION A major purpose of a database system is to provide users with an abstract view of the data. This system hides certain details of how the data is stored and maintained. However in order for the system to be usable, data must be retrieved efficiently. The efficiency lead to the design of complex data structure for the representation of data in the database. Certain complexity must be hidden from the database system users. This accomplished by defining several levels of abstraction at which the database may be viewed. CLASSIFICATION OF DATABASE There are 3 types of database approaches given below, Hierarchical Database In this type of model data is represented in simple tree structured. The record at the top of three is known as root, the root may have any number of dependents. Each of these may have any number of low level dependents and so on up to any number of levels. The disadvantages of the approach are that no independent record occurrence can exist without its superior. Network Database In a Network database, data is represented by Network structure. In this approach record occurrence can have any number of superiors as well as any number of immediate dependents thus allow many to many correspondence directly than an hierarchical approach. The main disadvantage of the Network model is data representation is very complex resulting in complexity of the DML (Data Manipulation Language).

Relational Database: The Relational model represents data and relationships among data by a collection of tables each of which has a number of columns with unique names.

THE SQL LANGUAGE SQL is a language for relational database. SQL is a non-procedural i.e., when we use SQL we specify what we want to be done not how to do it. Features Of SQL SQL is an interactive query language. SQL is a database administration language. SQL is a database programming language. SQL is a client/server language. SQL is a distributed database language.

1. SQL is a database gateway language. Basic SQL Commands Data Definition Language commands (DDL) Data Manipulation Language commands (DML) Transaction Control Language commands (TCL) Data control Language commands (DCL)

4. SYSTEM DESIGN
INTRODUCTION

Design is the first step in the development phase for any techniques and principles for the purpose of defining a device, a process or system in sufficient detail to permit its physical realization. Once the software requirements have been analyzed and specified the software design involves three technical activities - design, coding, implementation and testing that are required to build and verify the software.

The design activities are of main importance in this phase, because in this activity, decisions ultimately affecting the success of the software implementation and its ease of maintenance are made. These decisions have the final bearing upon reliability and maintainability of the system. Design is the only way to accurately translate the customers requirements into finished software or a system.

Design is the place where quality is fostered in development. Software design is a process through which requirements are translated into a representation of software. Software design is conducted in two steps. Preliminary design is concerned with the transformation of requirements into data.

UML DIAGRAMS

Actor:
A coherent set of roles that users of use cases play when interacting with the use `cases.

Use case:
A description of sequence of actions, including variants, that a system performs that yields an observable result of value of an actor.

UML stands for Unified Modeling Language. UML is a language for specifying, visualizing and documenting the system. This is the step while developing any product after analysis. The goal from this is to produce a model of the entities involved in the project which later need to be built. The representation of the entities that are to be used in the product being developed need to be designed. There are various kinds of methods in software design: They are as follows: Use case Diagram Sequence Diagram Collaboration Diagram Activity Diagram State chat Diagram

4.1 USECASE DIAGRAMS Use case diagrams model behavior within a system and helps the developers understand of what the user require. The stick man represents whats called an actor. Use case diagram can be useful for getting an overall view of the system and clarifying who can do and more importantly what they cant do. Use case diagram consists of use cases and actors and shows the interaction between the use case and actors.

The purpose is to show the interactions between the use case and actor. To represent the system requirements from users perspective. An actor could be the end-user of the system or an external system.

A Use case is a description of set of sequence of actions Graphically it is rendered as an ellipse with solid line including only its name. Use case diagram is a behavioral diagram that shows a set of use cases and actors and their relationship. It is an association between the use cases and actors. An actor represents a real-world object

4.2 SEQUENCE DIAGRAM Sequence diagram and collaboration diagram are called INTERACTION DIAGRAMS. An interaction diagram shows an interaction, consisting of set of objects and their relationship including the messages that may be dispatched among them. A sequence diagram is an introduction that empathizes the time ordering of messages. Graphically a sequence diagram is a table that shows objects arranged along the X-axis and messages ordered in increasing time along the Y-axis 4.3 COLLABORATION DIAGRAM A collaboration diagram is an introduction diagram that emphasizes the structural organization of the objects that send and receive messages. Graphically a collaboration diagram is a collection of vertices and arcs.

4.4 CLASS DIAGRAM

Class is nothing but a structure that contains both variables and methods. The Class Diagram shows a set of classes, interfaces, and collaborations and their relating ships. There is most common diagram in modeling the object oriented systems and are used to give the static view of a system. It shows the dependency between the classes that can be used in our system. The interactions between the modules or classes of our projects are shown below. Each block contains Class Name, Variables and Methods.

4.5 DATA FLOW DIAGRAMS

The DFD takes an input-process-output view of a system i.e. data objects flow into the software, are transformed by processing elements, and resultant data objects flow out of the software.

Data objects represented by labeled arrows and transformation are represented by circles also called as bubbles. DFD is presented in a hierarchical fashion i.e. the first data flow model represents the system as a whole. Subsequent DFD refine the context diagram (level 0 DFD), providing increasing details with each subsequent level.

The DFD enables the software engineer to develop models of the information domain & functional domain at the same time. As the DFD is refined into greater levels of details, the analyst perform an implicit functional decomposition of the system. At the same time, the DFD refinement results in a corresponding refinement of the data as it moves through the process that embody the applications.

A context-level DFD for the system the primary external entities produce information for use by the system and consume information generated by the system. The labeled arrow represents data objects or object hierarchy.

RULES FOR DFD Fix the scope of the system by means of context diagrams. Organize the DFD so that the main sequence of the actions Reads left to right and top to bottom. Identify all inputs and outputs. Identify and label each process internal to the system with Rounded circles. A process is required for all the data transformation and Transfers. Therefore, never connect a data store to a data Source or the destinations or another data store with just a Data flow arrow. Do not indicate hardware and ignore control information. Make sure the names of the processes accurately convey everything the process is done. There must not be unnamed process. Indicate external sources and destinations of the data, with Squares. Number each occurrence of repeated external entities. Identify all data flows for each process step, except simple Record retrievals. Label data flow on each arrow. Use details flow on each arrow. Use the details flow arrow to indicate data movements.

4.6 E-R DIAGRAMS The Entity-Relationship (ER) model was originally proposed by Peter in 1976 [Chen76] as a way to unify the network and relational database views. Simply stated the ER model is a conceptual data model that views the real world as entities and relationships. A basic component

of the model is the Entity-Relationship diagram which is used to visually represents data objects. Since Chen wrote his paper the model has been extended and today it is commonly used for database design For the database designer, the utility of the ER model is:

It maps well to the relational model. The constructs used in the ER model can easily be transformed into relational tables.

It is simple and easy to understand with a minimum of training. Therefore, the model can be used by the database designer to communicate the design to the end user.

In addition, the model can be used as a design plan by the database developer to implement a data model in a specific database management software.

CONNECTIVITY AND CARDINALITY The basic types of connectivity for relations are: one-to-one, one-to-many, and many-to-many. A one-to-one (1:1) relationship is when at most one instance of a entity A is associated with one instance of entity B. For example, "employees in the company are each assigned their own office. For each employee there exists a unique office and for each office there exists a unique employee. A One-To-Many (1:N) relationships is when for one instance of entity A, there are zero, one, or many instances of entity B, but for one instance of entity B, there is only one instance of entity A. An example of a 1:N relationships is A department has many employees each employee is assigned to one department A many-to-many (M:N) relationship, sometimes called non-specific, is when for one instance of entity A, there are zero, one, or many instances of entity B and for one instance of entity B there are zero, one, or many instances of entity A. The connectivity of a relationship describes the mapping of associated ER NOTATION There is no standard for representing data objects in ER diagrams. Each modeling methodology uses its own notation. The original notation used by Chen is widely used in academics texts and journals but rarely seen in either CASE tools or publications by non-

academics. Today, there are a number of notations used, among the more common are Bachman, crow's foot, and IDEFIX. All notational styles represent entities as rectangular boxes and relationships as lines connecting boxes. Each style uses a special set of symbols to represent the cardinality of a connection. The notation used in this document is from Martin. The symbols used for the basic ER constructs are: Entities are represented by labeled rectangles. The label is the name of the entity. Entity names should be singular nouns. Relationships are represented by a solid line connecting two entities. The name of the relationship is written above the line. Relationship names should be verbs Attributes, when included, are listed inside the entity rectangle. Attributes which are identifiers are underlined. Attribute names should be singular nouns. Cardinality of many is represented by a line ending in a crow's foot. If the crow's foot is omitted, the cardinality is one. Existence is represented by placing a circle or a perpendicular bar on the line. Mandatory existence is shown by the bar (looks like a 1) next to the entity for an instance is required. Optional existence is shown by placing a circle next to the entity that is optional

SCREEN SHOT

SAMPLE CODING
using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Data.SqlClient;

namespace ATM { public partial class admin_add_acc_cust : Form { SqlConnection con = new SqlConnection(data.con); public admin_add_acc_cust() { InitializeComponent(); } private void label4_Click(object sender, EventArgs e) { } private void admin_add_acc_cust_Load(object sender, EventArgs e) { //SqlConnection con = new SqlConnection("data source=CLIENT07\\SQLEXPRESS;integrated security=true;initial catalog=ATM;"); con.Open(); SqlCommand cmd = new SqlCommand("select * from customer_details", con); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { comboBox1.Items.Add(rdr["account_number"]).ToString(); } label6.Visible = false; label5.Visible = false; con.Close(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { //SqlConnection con = new SqlConnection("data source=CLIENT07\\SQLEXPRESS;integrated security=true;initial catalog=ATM;"); con.Open(); SqlCommand cmd = new SqlCommand("select * from customer_details where account_number='"+comboBox1.Text+"'", con); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) {

textBox1.Text = rdr["name"].ToString(); textBox2.Text = rdr["balance"].ToString(); } con.Close(); } private void textBox3_TextChanged(object sender, EventArgs e) { label5.Text = (double.Parse(textBox2.Text) + double.Parse(textBox3.Text)).ToString(); } private void label5_Click(object sender, EventArgs e) { } private void textBox3_Layout(object sender, LayoutEventArgs e) { } private void textBox3_Leave(object sender, EventArgs e) { label6.Visible = true; label5.Visible = true; label6.Text = "Account Credited By:"; textBox3.ReadOnly = true; } private void button1_Click(object sender, EventArgs e) { } } }

using using using using using using using using using

System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Data.SqlClient;

namespace ATM { public partial class admin_create_cust : Form { SqlConnection con = new SqlConnection(data.con); public admin_create_cust()

{ InitializeComponent(); } private void panel1_Paint(object sender, PaintEventArgs e) { } private void label6_Click(object sender, EventArgs e) { } private void label8_Click(object sender, EventArgs e) { } private void admin_create_cust_Load(object sender, EventArgs e) { // SqlConnection con = new SqlConnection("data source=CLIENT07\\SQLEXPRESS;integrated security=true;initial catalog=ATM;"); con.Open(); SqlCommand com = new SqlCommand("select count(*) from customer_details", con); //con.Open(); int count = Convert.ToInt16(com.ExecuteScalar()) + 1; textBox8.Text = ("3241100011" + count); con.Close(); } private void button1_Click(object sender, EventArgs e) { //SqlConnection con = new SqlConnection("data source=CLIENT07\\SQLEXPRESS;integrated security=true;initial catalog=ATM;"); con.Open(); SqlCommand cmd = new SqlCommand("insert into customer_details(name,address,email_id,contact_number,card_number,pin,city,ac count_type,balance) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + comboBox1.Text + "','" + textBox9.Text + "')", con); cmd.ExecuteNonQuery(); comboBox1.Text = " "; textBox9.Text=" "; textBox8.Text = " "; textBox7.Text = " "; textBox6.Text = " "; textBox5.Text = " "; textBox4.Text = " "; textBox3.Text = " "; textBox2.Text = " "; textBox1.Text = " "; textBox1.Focus(); con.Close();

} } }

using using using using using using using using using using

System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Data.SqlClient; System.Data.SqlClient;

namespace ATM { public partial class admin_cust_tran_deta : Form { SqlConnection con = new SqlConnection(data.con); public admin_cust_tran_deta() { InitializeComponent(); } private void admin_cust_tran_deta_Load(object sender, EventArgs e) { DataGridViewButtonColumn del=new DataGridViewButtonColumn(); del.Text="Delete"; del.Name="Delete"; del.DataPropertyName="Delete"; dataGridView1.Columns.Add(del); namespace ATM { public partial class admin_main : Form { public admin_main() { InitializeComponent(); } private void logOutToolStripMenuItem_Click(object sender, EventArgs e) { Form1 f1 = new Form1(); f1.Show(); }

private void createCustomerToolStripMenuItem_Click(object sender, EventArgs e) { admin_create_cust acc = new admin_create_cust(); acc.Show(); } private void viewCustomerDetailsToolStripMenuItem_Click(object sender, EventArgs e) { admin_view_customer avc = new admin_view_customer(); avc.Show(); } private void addACDetailsToolStripMenuItem_Click(object sender, EventArgs e) { admin_add_acc_cust aaac = new admin_add_acc_cust(); aaac.Show(); } private void customerTransDeyailsToolStripMenuItem_Click(object sender, EventArgs e) { admin_cust_tran_deta actd = new admin_cust_tran_deta(); actd.Show(); } } } 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.Data.SqlClient; namespace ATM { public partial class admin_view_customer : Form { SqlConnection con = new SqlConnection(data.con); public admin_view_customer() { InitializeComponent(); } private void admin_view_customer_Load(object sender, EventArgs e) { SqlDataAdapter da = new SqlDataAdapter("select * from customer_details", con); DataSet ds = new DataSet(); da.Fill(ds,"customer_details"); // BindingSource bs = new BindingSource();

dataGridView1.AutoGenerateColumns = true; dataGridView1.DataSource = ds; dataGridView1.DataMember = "customer_details".ToString();

} private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } } } //----------------------------------------------------------------------------// <auto-generated> // This code was generated by a tool. // Runtime Version:2.0.50727.1433 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> //----------------------------------------------------------------------------#pragma warning disable 1591 namespace ATM { /// <summary> ///Represents a strongly typed in-memory cache of data. ///</summary> [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.T ypedDataSetGenerator", "2.0.0.0")] [global::System.Serializable()] [global::System.ComponentModel.DesignerCategoryAttribute("code")] [global::System.ComponentModel.ToolboxItem(true)] [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSet Schema")] [global::System.Xml.Serialization.XmlRootAttribute("ATMDataSet1")] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet") ] public partial class ATMDataSet1 : global::System.Data.DataSet { private customer_detailsDataTable tablecustomer_details; private transactionsDataTable tabletransactions;

private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public ATMDataSet1() { this.BeginInit(); this.InitClass(); global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged ); base.Tables.CollectionChanged += schemaChangedHandler; base.Relations.CollectionChanged += schemaChangedHandler; this.EndInit(); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected ATMDataSet1(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : base(info, context, false) { if ((this.IsBinarySerialized(info, context) == true)) { this.InitVars(false); global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged ); this.Tables.CollectionChanged += schemaChangedHandler1; this.Relations.CollectionChanged += schemaChangedHandler1; return; } string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { global::System.Data.DataSet ds = new global::System.Data.DataSet(); ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); if ((ds.Tables["customer_details"] != null)) { base.Tables.Add(new customer_detailsDataTable(ds.Tables["customer_details"])); } if ((ds.Tables["transactions"] != null)) { base.Tables.Add(new transactionsDataTable(ds.Tables["transactions"])); } this.DataSetName = ds.DataSetName; this.Prefix = ds.Prefix; this.Namespace = ds.Namespace; this.Locale = ds.Locale; this.CaseSensitive = ds.CaseSensitive; this.EnforceConstraints = ds.EnforceConstraints; this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); this.InitVars();

} else { this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); } this.GetSerializationData(info, context); global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged ); base.Tables.CollectionChanged += schemaChangedHandler; this.Relations.CollectionChanged += schemaChangedHandler; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.Browsable(false)] [global::System.ComponentModel.DesignerSerializationVisibility(global::System .ComponentModel.DesignerSerializationVisibility.Content)] public customer_detailsDataTable customer_details { get { return this.tablecustomer_details; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.Browsable(false)] [global::System.ComponentModel.DesignerSerializationVisibility(global::System .ComponentModel.DesignerSerializationVisibility.Content)] public transactionsDataTable transactions { get { return this.tabletransactions; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.BrowsableAttribute(true)] [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(globa l::System.ComponentModel.DesignerSerializationVisibility.Visible)] public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { get { return this._schemaSerializationMode; } set { this._schemaSerializationMode = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(globa l::System.ComponentModel.DesignerSerializationVisibility.Hidden)] public new global::System.Data.DataTableCollection Tables { get {

return base.Tables; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(globa l::System.ComponentModel.DesignerSerializationVisibility.Hidden)] public new global::System.Data.DataRelationCollection Relations { get { return base.Relations; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override void InitializeDerivedDataSet() { this.BeginInit(); this.InitClass(); this.EndInit(); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public override global::System.Data.DataSet Clone() { ATMDataSet1 cln = ((ATMDataSet1)(base.Clone())); cln.InitVars(); cln.SchemaSerializationMode = this.SchemaSerializationMode; return cln; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override bool ShouldSerializeTables() { return false; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override bool ShouldSerializeRelations() { return false; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { this.Reset(); global::System.Data.DataSet ds = new global::System.Data.DataSet(); ds.ReadXml(reader); if ((ds.Tables["customer_details"] != null)) { base.Tables.Add(new customer_detailsDataTable(ds.Tables["customer_details"])); } if ((ds.Tables["transactions"] != null)) { base.Tables.Add(new transactionsDataTable(ds.Tables["transactions"])); } this.DataSetName = ds.DataSetName;

this.Prefix = ds.Prefix; this.Namespace = ds.Namespace; this.Locale = ds.Locale; this.CaseSensitive = ds.CaseSensitive; this.EnforceConstraints = ds.EnforceConstraints; this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); this.InitVars(); } else { this.ReadXml(reader); this.InitVars(); } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); stream.Position = 0; return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] internal void InitVars() { this.InitVars(true); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] internal void InitVars(bool initTable) { this.tablecustomer_details = ((customer_detailsDataTable)(base.Tables["customer_details"])); if ((initTable == true)) { if ((this.tablecustomer_details != null)) { this.tablecustomer_details.InitVars(); } } this.tabletransactions = ((transactionsDataTable)(base.Tables["transactions"])); if ((initTable == true)) { if ((this.tabletransactions != null)) { this.tabletransactions.InitVars(); } } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] private void InitClass() { this.DataSetName = "ATMDataSet1"; this.Prefix = ""; this.Namespace = "http://tempuri.org/ATMDataSet1.xsd"; this.EnforceConstraints = true;

this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; this.tablecustomer_details = new customer_detailsDataTable(); base.Tables.Add(this.tablecustomer_details); this.tabletransactions = new transactionsDataTable(); base.Tables.Add(this.tabletransactions); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] private bool ShouldSerializecustomer_details() { return false; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] private bool ShouldSerializetransactions() { return false; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { this.InitVars(); } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { ATMDataSet1 ds = new ATMDataSet1(); global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); any.Namespace = ds.Namespace; sequence.Items.Add(any); type.Particle = sequence; global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); if (xs.Contains(dsSchema.TargetNamespace)) { global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); try { global::System.Xml.Schema.XmlSchema schema = null; dsSchema.Write(s1); for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); s2.SetLength(0); schema.Write(s2); if ((s1.Length == s2.Length)) {

s1.Position = 0; s2.Position = 0; for (; ((s1.Position != s1.Length) && (s1.ReadByte() == s2.ReadByte())); public event transactionsRowChangeEventHandler transactionsRowChanging; public event transactionsRowChangeEventHandler transactionsRowChanged; public event transactionsRowChangeEventHandler transactionsRowDeleting; public event transactionsRowChangeEventHandler transactionsRowDeleted; [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void AddtransactionsRow(transactionsRow row) { this.Rows.Add(row); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public transactionsRow AddtransactionsRow(string UserName, int AccountNumber, string DateTime, int Credit, int Debit, int Total) { transactionsRow rowtransactionsRow = ((transactionsRow)(this.NewRow())); object[] columnValuesArray = new object[] { UserName, AccountNumber, DateTime, Credit, Debit, Total, null}; rowtransactionsRow.ItemArray = columnValuesArray; this.Rows.Add(rowtransactionsRow); return rowtransactionsRow; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public override global::System.Data.DataTable Clone() { transactionsDataTable cln = ((transactionsDataTable)(base.Clone())); cln.InitVars(); return cln; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override global::System.Data.DataTable CreateInstance() { return new transactionsDataTable(); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] internal void InitVars() { this.columnUserName = base.Columns["UserName"];

this.columnAccountNumber = base.Columns["AccountNumber"]; this.columnDateTime = base.Columns["DateTime"]; this.columnCredit = base.Columns["Credit"]; this.columnDebit = base.Columns["Debit"]; this.columnTotal = base.Columns["Total"]; this.columnTransId = base.Columns["TransId"]; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] private void InitClass() { this.columnUserName = new global::System.Data.DataColumn("UserName", typeof(string), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnUserName); this.columnAccountNumber = new global::System.Data.DataColumn("AccountNumber", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnAccountNumber); this.columnDateTime = new global::System.Data.DataColumn("DateTime", typeof(string), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnDateTime); this.columnCredit = new global::System.Data.DataColumn("Credit", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnCredit); this.columnDebit = new global::System.Data.DataColumn("Debit", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnDebit); this.columnTotal = new global::System.Data.DataColumn("Total", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnTotal); this.columnTransId = new global::System.Data.DataColumn("TransId", typeof(int), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnTransId); this.columnUserName.MaxLength = 50; this.columnDateTime.MaxLength = 50; this.columnTransId.AutoIncrement = true; this.columnTransId.AutoIncrementSeed = -1; this.columnTransId.AutoIncrementStep = -1; this.columnTransId.AllowDBNull = false; this.columnTransId.ReadOnly = true; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public transactionsRow NewtransactionsRow() { return ((transactionsRow)(this.NewRow())); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { return new transactionsRow(builder); }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override global::System.Type GetRowType() { return typeof(transactionsRow); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { base.OnRowChanged(e); if ((this.transactionsRowChanged != null)) { this.transactionsRowChanged(this, new transactionsRowChangeEvent(((transactionsRow)(e.Row)), e.Action)); } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { base.OnRowChanging(e); if ((this.transactionsRowChanging != null)) { this.transactionsRowChanging(this, new transactionsRowChangeEvent(((transactionsRow)(e.Row)), e.Action)); } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { base.OnRowDeleted(e); if ((this.transactionsRowDeleted != null)) { this.transactionsRowDeleted(this, new transactionsRowChangeEvent(((transactionsRow)(e.Row)), e.Action)); } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { base.OnRowDeleting(e); if ((this.transactionsRowDeleting != null)) { this.transactionsRowDeleting(this, new transactionsRowChangeEvent(((transactionsRow)(e.Row)), e.Action)); } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void RemovetransactionsRow(transactionsRow row) { this.Rows.Remove(row); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType();

global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); ATMDataSet1 ds = new ATMDataSet1(); global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); any1.Namespace = "http://www.w3.org/2001/XMLSchema"; any1.MinOccurs = new decimal(0); any1.MaxOccurs = decimal.MaxValue; any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; sequence.Items.Add(any1); global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; any2.MinOccurs = new decimal(1); any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; sequence.Items.Add(any2); global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); attribute1.Name = "namespace"; attribute1.FixedValue = ds.Namespace; type.Attributes.Add(attribute1); global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); attribute2.Name = "tableTypeName"; attribute2.FixedValue = "transactionsDataTable"; type.Attributes.Add(attribute2); type.Particle = sequence; global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); if (xs.Contains(dsSchema.TargetNamespace)) { global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); try { global::System.Xml.Schema.XmlSchema schema = null; dsSchema.Write(s1); for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); s2.SetLength(0); schema.Write(s2); if ((s1.Length == s2.Length)) { s1.Position = 0; s2.Position = 0; for (; ((s1.Position != s1.Length) && (s1.ReadByte() == s2.ReadByte())); ) { ; } if ((s1.Position == s1.Length)) { return type; } }

} } finally { if ((s1 != null)) { s1.Close(); } if ((s2 != null)) { s2.Close(); } } } xs.Add(dsSchema); return type; } } /// <summary> ///Represents strongly named DataRow class. ///</summary> [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.T ypedDataSetGenerator", "2.0.0.0")] public partial class customer_detailsRow : global::System.Data.DataRow { private customer_detailsDataTable tablecustomer_details; [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] internal customer_detailsRow(global::System.Data.DataRowBuilder rb) : base(rb) { this.tablecustomer_details = ((customer_detailsDataTable)(this.Table)); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public string name { get { try { return ((string)(this[this.tablecustomer_details.nameColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("The value for column \'name\' in table \'customer_details\' is DBNull.", e); } } set { this[this.tablecustomer_details.nameColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public string address { get { try {

return ((string)(this[this.tablecustomer_details.addressColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("The value for column \'address\' in table \'customer_details\' is DBNull.", e); } } set { this[this.tablecustomer_details.addressColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public string email_id { get { try { return ((string)(this[this.tablecustomer_details.email_idColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("The value for column \'email_id\' in table \'customer_details\' is DBNull.", e); } } set { this[this.tablecustomer_details.email_idColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public string contact_number { get { try { return ((string)(this[this.tablecustomer_details.contact_numberColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("The value for column \'contact_number\' in table \'customer_details\' is DBNull.", e); } } set { this[this.tablecustomer_details.contact_numberColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public string card_number { get { return ((string)(this[this.tablecustomer_details.card_numberColumn])); }

set { this[this.tablecustomer_details.card_numberColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public string pin { get { try { return ((string)(this[this.tablecustomer_details.pinColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("The value for column \'pin\' in table \'customer_details\' is DBNull.", e); } } set { this[this.tablecustomer_details.pinColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public string city { get { try { return ((string)(this[this.tablecustomer_details.cityColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("The value for column \'city\' in table \'customer_details\' is DBNull.", e); } } set { this[this.tablecustomer_details.cityColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public string account_type { get { try { return ((string)(this[this.tablecustomer_details.account_typeColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("The value for column \'account_type\' in table \'customer_details\' is DBNull.", e); } } set {

this[this.tablecustomer_details.account_typeColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public decimal account_number { get { return ((decimal)(this[this.tablecustomer_details.account_numberColumn])); } set { this[this.tablecustomer_details.account_numberColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public int balance { get { try { return ((int)(this[this.tablecustomer_details.balanceColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("The value for column \'balance\' in table \'customer_details\' is DBNull.", e); } } set { this[this.tablecustomer_details.balanceColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public bool IsnameNull() { return this.IsNull(this.tablecustomer_details.nameColumn); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void SetnameNull() { this[this.tablecustomer_details.nameColumn] = global::System.Convert.DBNull; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public bool IsaddressNull() { return this.IsNull(this.tablecustomer_details.addressColumn); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void SetaddressNull() { this[this.tablecustomer_details.addressColumn] = global::System.Convert.DBNull; }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public bool Isemail_idNull() { return this.IsNull(this.tablecustomer_details.email_idColumn); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void Setemail_idNull() { this[this.tablecustomer_details.email_idColumn] = global::System.Convert.DBNull; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public bool Iscontact_numberNull() { return this.IsNull(this.tablecustomer_details.contact_numberColumn); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void Setcontact_numberNull() { this[this.tablecustomer_details.contact_numberColumn] = global::System.Convert.DBNull; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public bool IspinNull() { return this.IsNull(this.tablecustomer_details.pinColumn); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void SetpinNull() { this[this.tablecustomer_details.pinColumn] = global::System.Convert.DBNull; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public bool IscityNull() { return this.IsNull(this.tablecustomer_details.cityColumn); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void SetcityNull() { this[this.tablecustomer_details.cityColumn] = global::System.Convert.DBNull; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public bool Isaccount_typeNull() { return this.IsNull(this.tablecustomer_details.account_typeColumn); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void Setaccount_typeNull() { this[this.tablecustomer_details.account_typeColumn] = global::System.Convert.DBNull; }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public bool IsbalanceNull() { return this.IsNull(this.tablecustomer_details.balanceColumn); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public void SetbalanceNull() { this[this.tablecustomer_details.balanceColumn] = global::System.Convert.DBNull; } } /// <summary> ///Represents strongly named DataRow class. ///</summary> [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.T ypedDataSetGenerator", "2.0.0.0")] public partial class transactionsRow : global::System.Data.DataRow { private transactionsDataTable tabletransactions; [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] internal transactionsRow(global::System.Data.DataRowBuilder rb) : base(rb) { this.tabletransactions = ((transactionsDataTable)(this.Table)); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public string UserName { get { try { return ((string)(this[this.tabletransactions.UserNameColumn])); } catch (global::System.InvalidCastException e) { throw new global::System.Data.StrongTypingException("The value for column \'UserName\' in table \'transactions\' is DBNull.", e); } } set { this[this.tabletransactions.UserNameColumn] = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public int AccountNumber { get { try { return ((int)(this[this.tabletransactions.AccountNumberColumn])); } catch (global::System.InvalidCastException e) {

[global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdap ter")] public virtual int Update(global::System.Data.DataRow[] dataRows) { return this.Adapter.Update(dataRows); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdap ter")] [global::System.ComponentModel.DataObjectMethodAttribute(global::System.Compo nentModel.DataObjectMethodType.Insert, true)] public virtual int Insert(string UserName, global::System.Nullable<int> AccountNumber, string DateTime, global::System.Nullable<int> Credit, global::System.Nullable<int> Debit, global::System.Nullable<int> Total) { if ((UserName == null)) { this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; } else { this.Adapter.InsertCommand.Parameters[0].Value = ((string)(UserName)); } if ((AccountNumber.HasValue == true)) { this.Adapter.InsertCommand.Parameters[1].Value = ((int)(AccountNumber.Value)); } else { this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; } if ((DateTime == null)) { this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; } else { this.Adapter.InsertCommand.Parameters[2].Value = ((string)(DateTime)); } if ((Credit.HasValue == true)) { this.Adapter.InsertCommand.Parameters[3].Value = ((int)(Credit.Value)); } else { this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; } if ((Debit.HasValue == true)) { this.Adapter.InsertCommand.Parameters[4].Value = ((int)(Debit.Value)); } else { this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value;

} if ((Total.HasValue == true)) { this.Adapter.InsertCommand.Parameters[5].Value = ((int)(Total.Value)); } else { this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; } global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) != global::System.Data.ConnectionState.Open)) { this.Adapter.InsertCommand.Connection.Open(); } try { int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); return returnValue; } finally { if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { this.Adapter.InsertCommand.Connection.Close(); } } } } /// <summary> ///TableAdapterManager is used to coordinate TableAdapters in the dataset to enable Hierarchical Update scenarios ///</summary> [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.T ypedDataSetGenerator", "2.0.0.0")] [global::System.ComponentModel.DesignerCategoryAttribute("code")] [global::System.ComponentModel.ToolboxItem(true)] [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSo urce.Design.TableAdapterManagerDesigner, Microsoft.VSD" + "esigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdap terManager")] public partial class TableAdapterManager : global::System.ComponentModel.Component { private UpdateOrderOption _updateOrder; private customer_detailsTableAdapter _customer_detailsTableAdapter; private transactionsTableAdapter _transactionsTableAdapter; private bool _backupDataSetBeforeUpdate;

private global::System.Data.IDbConnection _connection; [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public UpdateOrderOption UpdateOrder { get { return this._updateOrder; } set { this._updateOrder = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSour ce.Design.TableAdapterManagerPropertyEditor, Microso" + "ft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "", "System.Drawing.Design.UITypeEditor")] public customer_detailsTableAdapter customer_detailsTableAdapter { get { return this._customer_detailsTableAdapter; } set { if (((this._customer_detailsTableAdapter != null) && (this.TableAdapterInstanceCount == 1))) { this._customer_detailsTableAdapter = value; return; } if (((value != null) && (this.MatchTableAdapterConnection(value.Connection) == false))) { throw new global::System.ArgumentException("All TableAdapters managed by a TableAdapterManager must use the same connection s" + "tring."); } this._customer_detailsTableAdapter = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSour ce.Design.TableAdapterManagerPropertyEditor, Microso" + "ft.VSDesigner, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "", "System.Drawing.Design.UITypeEditor")] public transactionsTableAdapter transactionsTableAdapter { get { return this._transactionsTableAdapter; } set { if (((this._transactionsTableAdapter != null) && (this.TableAdapterInstanceCount == 1))) { this._transactionsTableAdapter = value;

return; } if (((value != null) && (this.MatchTableAdapterConnection(value.Connection) == false))) { throw new global::System.ArgumentException("All TableAdapters managed by a TableAdapterManager must use the same connection s" + "tring."); } this._transactionsTableAdapter = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] public bool BackupDataSetBeforeUpdate { get { return this._backupDataSetBeforeUpdate; } set { this._backupDataSetBeforeUpdate = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.Browsable(false)] public global::System.Data.IDbConnection Connection { get { if ((this._connection != null)) { return this._connection; } if (((this._customer_detailsTableAdapter != null) && (this._customer_detailsTableAdapter.Connection != null))) { return this._customer_detailsTableAdapter.Connection; } if (((this._transactionsTableAdapter != null) && (this._transactionsTableAdapter.Connection != null))) { return this._transactionsTableAdapter.Connection; } return null; } set { this._connection = value; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.ComponentModel.Browsable(false)] public int TableAdapterInstanceCount { get { int count = 0; if ((this._customer_detailsTableAdapter != null)) { count = (count + 1); } if ((this._transactionsTableAdapter != null)) {

this._transactionsTableAdapter.Adapter.AcceptChangesDuringUpdate = false; adaptersWithAcceptChangesDuringUpdate.Add(this._transactionsTableAdapter.Adap ter); } } else { if ((0 < allAddedRows.Count)) { global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; allAddedRows.CopyTo(rows); for (int i = 0; (i < rows.Length); i = (i + 1)) { global::System.Data.DataRow row = rows[i]; row.AcceptChanges(); row.SetAdded(); } } } throw ex; } finally { if (workConnOpened) { workConnection.Close(); } if ((this._customer_detailsTableAdapter != null)) { this._customer_detailsTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._custom er_detailsTableAdapter])); this._customer_detailsTableAdapter.Transaction = null; } if ((this._transactionsTableAdapter != null)) { this._transactionsTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._transa ctionsTableAdapter])); this._transactionsTableAdapter.Transaction = null; } if ((0 < adaptersWithAcceptChangesDuringUpdate.Count)) { global::System.Data.Common.DataAdapter[] adapters = new System.Data.Common.DataAdapter[adaptersWithAcceptChangesDuringUpdate.Count]; adaptersWithAcceptChangesDuringUpdate.CopyTo(adapters); for (int i = 0; (i < adapters.Length); i = (i + 1)) { global::System.Data.Common.DataAdapter adapter = adapters[i]; adapter.AcceptChangesDuringUpdate = true; } } } return result; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected virtual void SortSelfReferenceRows(global::System.Data.DataRow[] rows, global::System.Data.DataRelation relation, bool childFirst) { global::System.Array.Sort<global::System.Data.DataRow>(rows, new SelfReferenceComparer(relation, childFirst));

} [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] protected virtual bool MatchTableAdapterConnection(global::System.Data.IDbConnection inputConnection) { if ((this._connection != null)) { global::System.Data.DataRow newParent = child.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); for ( ; ((newParent != null) && ((object.ReferenceEquals(newParent, child) == false) && (object.ReferenceEquals(newParent, parent) == false)));

7. TESTING
Testing is a process of executing a program with the indent of finding an error. Testing is a crucial element of software quality assurance and presents ultimate review of specification, design and coding. System Testing is an important phase. Testing represents an interesting anomaly for the software. Thus a series of testing are performed for the proposed system before the system is ready for user acceptance testing. A good test case is one that has a high probability of finding an as undiscovered error. A successful test is one that uncovers an as undiscovered error. Testing Objectives 1. Testing is a process of executing a program with the intent of finding an error 2. A good test case is one that has a probability of finding an as yet undiscovered error 3. A successful test is one that uncovers an undiscovered error Testing Principles All tests should be traceable to end user requirements Tests should be planned long before testing begins Testing should begin on a small scale and progress towards testing in large Exhaustive testing is not possible To be most effective testing should be conducted by a independent third party

The primary objective for test case design is to derive a set of tests that has the highest livelihood for uncovering defects in software. To accomplish this objective two different categories of test case design techniques are used. They are White box testing. Black box testing. 7.1 White-box testing White box testing focus on the program control structure. Test cases are derived to ensure that all statements in the program have been executed at least once during testing and that all logical conditions have been executed. 7.2 Block-box testing Black box testing is designed to validate functional requirements without regard to the internal workings of a program. Black box testing mainly focuses on the information domain of the software, deriving test cases by partitioning input and output in a manner that provides through test coverage. Incorrect and missing functions, interface errors, errors in data structures, error in functional logic are the errors falling in this category. Testing strategies A strategy for software testing must accommodate low-level tests that are necessary to verify that all small source code segment has been correctly implemented as well as high-level tests that validate major system functions against customer requirements. Testing fundamentals Testing is a process of executing program with the intent of finding error. A good test case is one that has high probability of finding an undiscovered error. If testing is conducted successfully it uncovers the errors in the software. Testing cannot show the absence of defects, it can only show that software defects present. Testing Information flow

Information flow for testing flows the pattern. Two class of input provided to test the process. The software configuration includes a software requirements specification, a design specification and source code. Test configuration includes test plan and test cases and test tools. Tests are conducted and all the results are evaluated. That is test results are compared with expected results. When erroneous data are uncovered, an error is implied and debugging commences. 7.3 Unit testing Unit testing is essential for the verification of the code produced during the coding phase and hence the goal is to test the internal logic of the modules. Using the detailed design description as a guide, important paths are tested to uncover errors with in the boundary of the modules. These tests were carried out during the programming stage itself. All units of Vienna SQL were successfully tested. 7.4 Integration testing Integration testing focuses on unit tested modules and build the program structure that is dictated by the design phase.

7.5 System testing


System testing tests the integration of each module in the system. It also tests to find discrepancies between the system and its original objective, current specification and system documentation. The primary concern is the compatibility of individual modules. Entire system is working properly or not will be tested here, and specified path ODBC connection will correct or not, and giving output or not are tested here these verifications and validations are done by giving input values to the system and by comparing with expected output. Top-down testing implementing here. 7.6 Acceptance Testing This testing is done to verify the readiness of the system for the implementation. Acceptance testing begins when the system is complete. Its purpose is to provide the end user with the confidence that the system is ready for use. It involves planning and execution of

functional tests, performance tests and stress tests in order to demonstrate that the implemented system satisfies its requirements.

Tools to special importance during acceptance testing include Test coverage Analyzer records the control paths followed for each test case. Timing Analyzer also called a profiler, reports the time spent in various regions of the code are areas to concentrate on to improve system performance. Coding standards static analyzers and standard checkers are used to inspect code for deviations from standards and guidelines. Test Cases Test cases are derived to ensure that all statements in the program have been executed at least once during testing and that all logical conditions have been executed. Using White-Box testing methods, the software engineer can drive test cases that Guarantee that logical decisions on their true and false sides. Exercise all logical decisions on their true and false sides. Execute all loops at their boundaries and with in their operational bounds. Exercise internal data structure to assure their validity.

The test case specification for system testing has to be submitted for review before system testing commences.

8. IMPLEMENTATION

FRONT END TECHNOLOGY The .NET Framework is a new computing platform that simplifies application development in the highly distributed environment of the Internet. The .NET Framework is designed to fulfill the following objectives: To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely. To provide a code-execution environment that minimizes software deployment and versioning conflicts. To provide a code-execution environment that guarantees safe execution of code, including code created by an unknown or semi-trusted third party. To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments. To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications. To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code. Display charts that users can drill down on to view detailed report data. Calculate summaries, subtotals, and percentages on grouped data. Show TopN or BottomN results of data.

CONCLUSIONS
The design of ATM terminal system based on finger print recognition took advantages of the stability and reliability of fingerprint characteristics, a new biological technology based on the image enhancement algorithm of Gabor and direction filter. Additional, the system also contains the original verifying methods which was inputting owner's password. The security features were The design of ATM terminal system based on finger print recognition took advantages of the stability and reliability of finger print characteristics, a new biological technology based on the image enhancement algorithm of Gabor and direction filter. Additional, the system also contains the original verifying methods which was inputting owner's password.

FUTURE ENHANCEMENT

In this project we are using finger print module as mode of authentication. This project is depending on the biometrics i.e. fingerprint. In future it will be very easy to implement because each person has his own fingerprints with the permanent uniqueness. The system will provide many advantages such as, We do not forget our fingers, Users respect them, fraudsters are afraid of them, Protects privacy. Fingerprints do not change over time, Fingerprints stop unauthorized access, all fingers are unique, which allows each person to have ten easy uses of identifiers, Base of all world-wide identification In future systems using biometric will be preferred as method to provide security and authentication this will eliminate forgery and fraud in many organizations.

11. BIBLIOGRAPHY
The following books were referred during the analysis and execution phase of the project MICROSOFT .NET WITH C# Microsoft .net series ASP .NET 2.0 PROFESSIONAL Wrox Publishers ASP .NET WITH C# 2005 Apress Publications C# COOK BOOK O reilly Publications PROGRAMMING MICROSOFT ASP .NET 2.0 APPLICATION Wrox Professional Guide

BEGINNING ASP .NET 2.0 E-COMMERCE IN C# 2005 Novice to Professional.

WEBSITES: www.google.com www.microsoft.com