Business Logic Tier scripts -------------------------------------------------- using Directives -------------------------------------------------- using System.Data; using System.Data.SqlClient; using DataAccess; //Note: make your class public -------------------------------------------------- Region Directives -------------------------------------------------- #region " Public properties " #endregion #region " Read methods " #endregion #region " Insert methods " #endregion #region " Update methods " #endregion #region " Delete methods " #endregion -------------------------------------------------- Common properties -------------------------------------------------- public static bool pTransactionSuccessful; public bool TransactionSuccessful() { return pTransactionSuccessful; } public static string pErrorMessage; public string ErrorMessage() { return pErrorMessage; } public static int pErrorNumber; public int ErrorNumber() { return pErrorNumber; } public static int pErrorClass; public int ErrorClass() { return pErrorClass; } public static int pErrorState; public int ErrorState() { return pErrorState; } public static int pErrorLineNumber; public int ErrorLineNumber() { return pErrorLineNumber; } -------------------------------------------------- Generic read method -------------------------------------------------- public DataTable GetSomeResult(int Parameter1, string ConnectionString) { //Instantiate an instance of data access tier //In this case, daUser is a reference to the C# class in the DataAccess project daUser.cs //With the using DataAccess; directive DataAccess. is not necessary but it is included here //to clarify. DataAccess.daUser objdaUser = new DataAccess.daUser(); //Invoke DataAccess tier method passing paramter(s) and connection string DataTable dtSomeResult = objdaUser.GetSomeResult(Parameter1, ConnectionString); //Set property indicating whether transaction successful pTransactionSuccessful = objdaUser.TransactionSuccessful(); if (pTransactionSuccessful == false) { //Pass up error messages if any pErrorMessage = objdaUser.ErrorMessage(); pErrorNumber = objdaUser.ErrorNumber(); pErrorClass = objdaUser.ErrorClass(); pErrorState = objdaUser.ErrorState(); pErrorLineNumber = objdaUser.ErrorLineNumber(); } //Return ADO.Net data object to presentation tier return dtSomeResult; }