Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Data Access Layer

[es] :: .NET :: Data Access Layer

[ Pregleda: 2263 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

edit
Edin Dazdarevic
Sarajevo

Član broj: 23538
Poruke: 14
*.ppp-01.sa.lol.ba.



Profil

icon Data Access Layer07.04.2004. u 23:39 - pre 244 meseci
Napravio sam jednu klasu koja mi predstavlja Data Acces Layer. Aplikacija koju pravim je Logical N-tier, znaci
svi lejeri su na istom racunaru. Business Logic Layer klase bi nasledjivale ovu klasa i dodavale nove
funkcije.


Sa ovom klasom ustedim mnogo vremena, ali nisam siguran koliko je dobro uradjena,
prvenstveno mislim na performanse. Ako neko zna, nek pogleda, pa nek prokomentarise.
Code:

using System;
using System.Data;
using System.Data.SqlClient ; 
using System.Configuration; 
using System.Collections;

namespace appProba
{

    public abstract class sqlBase
    {
        //
        private string stringKonekcija; 
        private SqlConnection _konekcija; 
        private SqlCommand _komanda; 
        private SqlDataAdapter _da; 
        private DataSet _ds; 
        private SqlDataReader _dr; 

        // konstruktor klase 
        

        public sql()
        {
            stringKonekcija = ConfigurationSettings.AppSettings["connStr"];
            _konekcija = new SqlConnection(stringKonekcija); 
            _komanda = new SqlCommand(); 
            _da = new SqlDataAdapter();
        
            _komanda.Connection = _konekcija; 
        }
        
        protected string connStr
        {
            get 
            {
                if (stringKonekcija == null)
                {
                    return "";
                }
                return stringKonekcija;
            }
            
            set 
            {
                stringKonekcija = value; 
            }
        }


        protected DataSet runQueryDataSet()
        {

            _ds = new DataSet("myDataSet");
            _da.SelectCommand = _komanda; 
            _da.Fill(_ds); 
            return _ds; 
        }


        protected int runNonQuery()
        {
            
            _da.InsertCommand = _komanda; 
            _konekcija.Open();
            int rtValue = _da.InsertCommand.ExecuteNonQuery(); 
            _konekcija.Close();
            return rtValue; 
        }

        // podesava parametre  i vrijednosti za _konekcija 

        protected void SetParametar(string imeParametra, SqlDbType DbTip, int duzina, object vrijednost)
        {
            _komanda.Parameters.Add(imeParametra,DbTip,duzina); 
            _komanda.Parameters[imeParametra].Value  = vrijednost; 
        }
        protected void SetCommandInfo(CommandType Tip, string StdProName)
        {
            
            _komanda.CommandType = Tip; 
            _komanda.CommandText = StdProName;
        }

        protected SqlDataReader runQueryDataReader()
        {
            
            _konekcija.Open();
            SqlDataReader _dr = _komanda.ExecuteReader(CommandBehavior.CloseConnection);
            return _dr;

        }
        protected void _ResetCommand()
        {
            _komanda.Dispose(); 
            _da.Dispose(); 
        
            _komanda = new SqlCommand(); 
            _da = new SqlDataAdapter(); 
            _komanda.Connection = _konekcija;

        }

        protected object runScalar()
        {
            _konekcija.Open();
            
            object result = _komanda.ExecuteScalar();
            _konekcija.Close();
            return result;
        }
        
        

    }

}


primjer BLL klase.....


Code:

public class Proizvod: sqlBase
{
    public string id; 
    public string opis;

    public Proizvod(string ID, string OPIS)

    {
        
        
    }
    public DataSet GetById(string idProizvoda)
    {
        this._ResetCommand();
        
        this.SetParametar("@Sifra",SqlDbType.Char , 50,idProizvoda);
        this.SetCommandInfo(CommandType.StoredProcedure, "_GetById") 

                         // "_GetById" je ime Stored proc. na SQL serveru 
        DataSet ds = this.runQueryDataSet();
        return ds;
                
    }
}




bla...bla..bla........
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Data Access Layer08.04.2004. u 15:35 - pre 244 meseci
Imaš samo jedan koncepcijski previd, nevezano za optimizovanost koda.

BLL instancira DLL, ne nasleđuje je kako ti radiš. U ovom tvom primeru Proizvod je još jedna klasa koja pripada Data Layeru .
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

edit
Edin Dazdarevic
Sarajevo

Član broj: 23538
Poruke: 14
*.ppp-01.sa.lol.ba.



Profil

icon Re: Data Access Layer08.04.2004. u 23:33 - pre 244 meseci
da razumijem to.
ovo je bilo cisto onako kao primjer...
bla...bla..bla........
 
Odgovor na temu

[es] :: .NET :: Data Access Layer

[ Pregleda: 2263 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.