24-09-19, 05:24 AM
السلام عليكم
كمبرمج حر كاغلب البقية هنا دائما اسعى لكتابة الكود بافضل طريقة ممكنة، للتعلم بشكل صحيح والتطور الدائم
اليوم موضوعي عن طريقة الاتصال بقاعدة البيانات.
في السابق كنت استحدم كلاس فية جملة الاتصال و اقوم باستدعاء هذا الكلاس في الفورم او الكلاس المراد كالاتي :
PHP كود :
using System.Configuration;
using System.Data;
using System.Data.OleDb;
namespace WindowsFormsApp1.Classes
{
class DB_Connect
{
public OleDbConnection con;
public void Connection()
{
string constring = ConfigurationManager.ConnectionStrings["WindowsFormsApp1.Properties.Settings.DB_Con"].ConnectionString;
con = new OleDbConnection(constring);
}
public void Open_Con()
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
}
public void Close_Con()
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
}
}
وهي طريقة مريحة وفعالة واستخدمها في العادة.
لكن من فترة وبداعي الفضول لاكواد مختلفة مررت على فيديو باليوتوب يشرح فية الاتصال بقاعدة البيانات
ويستخدم SingletonHelper و يقوم باستنساخ الاتصال لعدم مناداة الاتصال كل مرة في حال كان عدد مستخدمين كثرة
لكي لا يستهلك موارد السيرفر والطريقة كالاتي :
لكي لا يستهلك موارد السيرفر والطريقة كالاتي :
PHP كود :
using System.Configuration;
using System.Data;
using System.Data.OleDb;
namespace WindowsFormsApp1.Classes
{
class DB_Connect
{
private DB_Connect() { }
public OleDbConnection Connection = new OleDbConnection(ConfigurationManager.ConnectionStrings["WindowsFormsApp1.Properties.Settings.DB_Con"].ConnectionString);
public void Open_Con()
{
if (Connection.State == ConnectionState.Closed)
{
Connection.Open();
}
}
public void Close_Con()
{
if (Connection.State == ConnectionState.Open)
{
Connection.Close();
}
}
private static class SingletonHelper
{
internal static readonly DB_Connect Instance = new DB_Connect();
}
public static DB_Connect Get_Connection()
{
return SingletonHelper.Instance;
}
}
}
لكن لاحظت انة في الطريقة الاولى البرنامح اسرع قليلا في عمليات الاضافة و التعديل.
هل من احد لدية خبرة او معلومة من هي الطريقة الانسب والافضل ؟؟
