ADO.NET_WorkshopEnrollmentApp_HandsOn1 C# Cognizant Solutions
Hands On: Data Insert Operation with ADO.NET
Scenario:
Your organization has decided to enroll trainees for a workshop on ART of LIVING. Help admin by creating an application to register trainees for the workshop.
Hands- On Description:
Here you will practice how to store data into Sql Server database using ADO.NET and C# by implementing 3-layer application architecture.
Data Design:
Table name: tblTrainee | ||
Column Name | Data type | Constraints |
Trainee_Id | bigint | Primary Key, Not Null |
Trainee_Name | varchar(100) | Not Null |
Batch_Code | varchar(100) | Not Null |
The database connection information is stored in the “App.config” file, which is also provided as part of code skeleton/template.
Component Specification:
Create a class called TraineeBO (business object) with the below public auto-implemented properties:
Type (Class) | DataType | Properties |
TraineeBO | long | TraineeId |
string | TraineeName | |
string | BatchCode |
Also add a default constructor and parameterized constructor in this class.
Create a class called TraineeDA with the below method: (This class contains data operations logic such as insert, update, delete or retrieve records to/from database)
Type (Class) | Method | Responsibility |
TraineeDA | public bool AddTraineeDetails(TraineeBO objBO) | This method should accept a TraineeBO object and execute a sql query to insert a trainee record into the database. It returns true if the insertion is successful and false if it is failed to insert. |
Use (as it is) the below code snippet in order to read the connection string values from the App.config file.
public string ConnectionString
{
get
{
return ConfigurationManager.ConnectionStrings[“SqlCon”].ConnectionString;
}
}
Create a class called TraineeBL with the below method: (This class contains business logic, validations and calculations related to the data. The Presentation Layer will communicate to Data Layer via this Business Layer)
Type (Class) | Method | Responsibility |
TraineeBL | public bool SaveTraineeDetails(TraineeBO objBO) | This method should accept a TraineeBO object and call the TraineeDA’s AddTraineeDetails method that returns true if it successfully inserts data to the database; else returns false. |
From the Program class’s Main method, call the TraineeBL’s method and test your application.
Business Rule:
Use try… catch block while working with TraineeDA and TraineeBLclass methods to catch exception.
TraineeBL.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WorkShopEnrollmentApp { //Write your code here public class TraineeBL { public bool SaveTraineeDetails(TraineeBO objBO) { TraineeDA tDA = new TraineeDA(); bool res = tDA.AddTraineeDetails(objBO); if (res) return true; else return false; } } }
TraineeBO.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WorkShopEnrollmentApp { //Write your code here public class TraineeBO { public long traineeId; public string traineeName; public string batchCode; public long TraineeId { get; set; } public string TraineeName { get; set; } public string BatchCode { get; set; } public TraineeBO() { } public TraineeBO(long traineeId, string traineeName, string batchCode) { this.traineeId = traineeId; this.traineeName = traineeName; this.batchCode = batchCode; } } }
TraineeDA.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Data; using System.Configuration; namespace WorkShopEnrollmentApp { //Write your code here public class TraineeDA { public string ConnectionString { get { return ConfigurationManager.ConnectionStrings["SqlCon"].ConnectionString; } } public bool AddTraineeDetails(TraineeBO objBO) { try { SqlConnection con = new SqlConnection(ConnectionString); con.Open(); string query = "insert into tblTrainee values(" + objBO.TraineeId + ",'" + objBO.TraineeName + "','" + objBO.BatchCode + "')"; SqlCommand cmd = new SqlCommand(query, con); int i = cmd.ExecuteNonQuery(); if (i > 0) return true; else return false; } catch (Exception e) { return false; } } } }