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;
}
}
}
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;
}
}
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........