الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Data Access Layer

بدأه أبو حفصة في 6 نوفمبر 2008 · 4 رد · 1,007 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــة

3 ملفات Pdf

فى الـ Data Acess layer

ان شاء الله يفيدوكم جدا ولو فى حاجة غامضة ممكن نناقشها هنا مع بعض

واتمنى انه يكون موضوع كبير نوضح فيه مفهوم الـ Dal كويس علشان يفيد الناس كلها ويوفر عليهم وقت وجهد ويزيد خبرتهم وخصوصا اللى لسه فى بداية الطريق

Building_Layered_Web_Applications_with_Microsoft_ASP.NET_2.0___Part_1___Imar.rar

Building_Layered_Web_Applications_with_Microsoft_ASP.NET_2.0___Part_2___Imar.rar

Building_Layered_Web_Applications_with_Microsoft_ASP.NET_2.0___Part_3___Imar.rar

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#2

وده مثال لكلاس انا عامله وباستخدمه فى مشروعى دلوقتى

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/// Summary description for DataAccessLayer
/// </summary>
public class DataAccessLayer
{
	SqlConnection sqlconnection;
	SqlTransaction ObTrans;

	/// <summary>Note
	/// Modify in the comming constraction to write the connectionstring name from Web config  
	/// </summary>
 public DataAccessLayer()
 {

		sqlconnection = new SqlConnection(ConfigurationManager.ConnectionStrings["هنا هاضع اسم الكونيكشن سترينج اللى فى ملف الكونفج "].ConnectionString);

 }
// to open connection 
	public void Open()
	{
		if (sqlconnection.State!=ConnectionState.Open)
		{
			sqlconnection.Open();
		}
	}
// Close
	public void Close()
	{
		if (sqlconnection.State==ConnectionState.Open)
		{
			sqlconnection.Close();
		}
	}
// use Transaction
	public void BeginTransactions()
	{
		if (ObTrans==null&&sqlconnection.State==ConnectionState.Open)
		{
			ObTrans = sqlconnection.BeginTransaction();			
		}
	}
// Roll Back if Trans failed
	public void RollBack()
	{
		if (ObTrans!=null)
		{
			ObTrans.Rollback();
			ObTrans = null;
		}
	}
// commit trans
	public void Commit()
	{
		if (ObTrans!=null)
		{
			ObTrans.Commit();
			ObTrans=null;
		}
	}
// Reader
	public SqlDataReader SelectReader(string StoredPCommand, SqlParameter[] arrayofparameter)
	{
		SqlCommand sqlcmd = new SqlCommand(StoredPCommand, sqlconnection);
		sqlcmd.CommandType = CommandType.StoredProcedure;
		if (arrayofparameter!=null)
		{
			for (int i = 0; i < arrayofparameter.Length; i++)
			{
				sqlcmd.Parameters.Add(arrayofparameter);
			}

		}
		SqlDataReader reader = sqlcmd.ExecuteReader();
		return reader;
	}
//reaturn scalar value
	public object SelectScalar(string StoredPCommand, SqlParameter[] arrayofparameter)
	{
		SqlCommand cmd = new SqlCommand(StoredPCommand, sqlconnection);
		cmd.CommandType = CommandType.StoredProcedure;
		if (arrayofparameter!=null)
		{
			for (int i = 0; i < arrayofparameter.Length; i++)
			{
				cmd.Parameters.Add(arrayofparameter);
			}
		}
		object objvalue = cmd.ExecuteScalar();
		return objvalue;
	}
	// return Dataset 
	public DataSet SelectDataSet(string StoredPCommand, SqlParameter[] arrayofparameter)
	{
		SqlCommand cmd = new SqlCommand(StoredPCommand, sqlconnection);
		cmd.CommandType = CommandType.StoredProcedure;

		if (arrayofparameter!=null)
		{
			for (int i = 0; i < arrayofparameter.Length; i++)
			{
				cmd.Parameters.Add(arrayofparameter);
			}
		}
		SqlDataAdapter da = new SqlDataAdapter(cmd);
		DataSet ds = new DataSet();
		da.Fill(ds);
		return ds;
	}
// Use always to execute the commands Auto 
	public void ExecuteCommand(string StoredPCommand, SqlParameter[] arrayofparameter)
	{
		SqlCommand cmd = new SqlCommand(StoredPCommand, sqlconnection);
		cmd.CommandType = CommandType.StoredProcedure;

		if (arrayofparameter != null)
		{
			for (int i = 0; i < arrayofparameter.Length; i++)
			{
				cmd.Parameters.Add(arrayofparameter);
			}
		}
		cmd.ExecuteNonQuery();
	}



	//ملإ الكومبو بوكس
	public void FillDropDown(string strStoredProc, DropDownList Ddl, params SqlParameter[] sqlParams)
	{
		Ddl.Items.Clear();
		Ddl.Items.Add("--Select--");
		SqlCommand objCommand = new SqlCommand(strStoredProc, sqlconnection);
		objCommand.CommandType = CommandType.StoredProcedure;
		foreach (SqlParameter sqlParam in sqlParams)
		{
			objCommand.Parameters.Add(sqlParam);
		}
		SqlDataReader reader = objCommand.ExecuteReader();
		while (reader.Read())
		{
			ListItem a = new ListItem();
			a.Value = reader[0].ToString();
			a.Text = reader[1].ToString();
			Ddl.Items.Add(a);
		}
		reader.Close();
		Ddl.SelectedItem.Text = "--Select--";
	}

}

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#3

Do Not Let The DAL Deal With UI , Separate Model , Vew and Presentation From Each Other

That's The Layered Structure

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#4

I know Bashmohands

the sperated Model is BLL

Bussniss Logic Layer

لكن هنا لا مجال للحديث عن الـ BLL لأنها بتتعمل على حسب حاجتى وشغلى

مثلا انا عندى جداول كتير وكل جدول عليه عمليات معينه فأنا عامل لكل جدول class لوحده وهو الطبقة بين الـ Dal والـ UI

مشكور اخونا NIght Coder على مساهمتك

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#5

السلام عليكــم ورحمـة الله وبركاتــة

  1.  

  2. //ملإ الكومبو بوكس
  3. public void FillDropDown(string strStoredProc, DropDownList Ddl, params SqlParameter[] sqlP
    arams)
  4. {
  5. Ddl.Items.Clear();
  6. Ddl.Items.Add("--Select--");
  7. SqlCommand objCommand = new SqlCommand(strStoredProc, sqlconnection);
  8. objCommand.CommandType = CommandType.StoredProcedure;
  9. foreach (SqlParameter sqlParam in sqlParams)
  10. {
  11. objCommand.Parameters.Add(sqlParam);
  12. }
  13. SqlDataReader reader = objCommand.ExecuteReader();
  14. while (reader.Read())
  15. {
  16. ListItem a = new ListItem();
  17. a.Value = reader[0].ToString();
  18. a.Text = reader[1].ToString();
  19. Ddl.Items.Add(a);
  20. }
  21. reader.Close();
  22. Ddl.SelectedItem.Text = "--Select--";
  23. }
  24.  

تعليقى كان على الكود باعلى لانك هنا قمت بملئ DropDownList و من المفترض ان مهمة ال DAL التعامل مع البيانات بغض النظر عن كيفية التعمل مع ال UI

نفترض انك استخدمت Third Party DropDownList و كان نوعها XComponent فهل ستقوم بالتغيير فى ال DAL

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

مواضيع مشابهة