تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
هل انتم مهتمون ببرنامج يكتب عنكم الكود
#18
(09-05-18, 02:11 PM)viv كتب : من ناحية انه يختصر الوقت أجل هو يختصر الوقت .

تصور هذا الكود انا مثلا عندي منظومة فيها 63 حقل لو اردت فقط في الاضافة سوف اكتب شيئا مثلا

PHP كود :
Try
With    QryEmplye Do
begin
  
.Close;
 
 .SQL.Clear;
 
 .SQL.Add('Insert Into Emplye(ID,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address) Values (:ID,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address,:FirstNmame,:LastName,:Age,:City,:Phone,:Address)');
// Add Parameters to Query Control
 
 .ParamByName('ID').Value:= Int;
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text);
 
 .ParamByName('LastName').Value:= Trim(TxtLastName.Text);
 
 .ParamByName('Age').Value:= Trim(TxtAge.Text);
 
 .ParamByName('City').Value:= Trim(TxtCity.Text);
 
 .ParamByName('Phone').Value:= Trim(TxtPhone.Text);
 
 .ParamByName('Address').Value:= Trim(TxtAddress.Text);
 
 .ExecSQL;
 
 ShowMessage('Ok File is Added');
except on EException do
 
 ShowMessage('Error');
end;
end

طبعا كتابة هذا الكود يدويا مرهقة ، ومكررة فقط .

في الدلفي لا توجد تقريبا الا طريقة واحدة مع كل مصادر البيانات ، المشكلة في الدوت نت تختلف الطرق مثلا طريقة استخدام محول البيانات والداتا ست وما الى ذلك كما يقول البعض هي طريفة قديمة ولا فائدة فيها ، اما من ناحية انشاء فئات ربما نطوره لانشاء فئات .

او من الممكن ان يكون الغرض منه تعليمي فقط وليس للاتكال علبه لصنع برامج ومنظومات حقيقية
يعني المبتدئين في التعلم يلجئون له لتوليد الكود واستخدامه ودراسته

فكل المنتدى مثلا تجده ممتلئ بالاسئلة من اشخاص يضعون اكوادهم للاضافة والتعديل او الحذف وفيها مشكلة .
احدهم نسى علامة تنصيص واخر نسى ربط محول البيانات بالداتا سيت واخر نسى امر Open وهكذا

ويمكن انشاء هذا البرنامج لكل هؤلاء ، فاكثر من 40% هذه هي مشاكلهم .
بالنسبة الى تطويره لانشاء فئات اذا كنت سوف تساعدنا بالتوجيه في كيفية الانشاء اخ ابو ليلي فسوف افتح موضوع للبدء فعلا ببرنامج لانشاء الفئات واريدك من الحين الى الاخر فيه لابداء الرأي ، وسيكون العمل جماعي ، او افتح انت موضوع وابداء الخطوات مثلا قل هذا مشروع جماعي ونريد برنامج لانشاء فئة بهذا الشكل لحقول قاعدة بيانات ونبداء نحن
وعندما ننتهي تقول مثلا اضيفوا لها الفئة كذا او اربطوها بالفئة كذا او اشتقوا منها كذا ونحن نعمل















أولاً شكراً أخي viv على هذة المبادرة الجميلة


لدي مداخلة وهي بخصوص الـ DataSet



كل الأمور التي تحدثتوا عنها موجودة أصلاً في  الـ DataSet ( كلها تعتمد على الكائنات والفئات وهي عبارة عن فئات متوارثة في الـ NET.)

لا تحتاج إلى كتابة كل هذا الكود في حال إستخدمة  الـ DataSet عن طريق الـ Wizard

حتى عملية الـ Add Parameters للـ 63 حقل ليس أنت من تقوم بها

أنت لا تقوم بكتابة شيء أصلاً 

كل ما عليك هو تصميم الإستعلام من خلال نافذة تبني لك جملة الإستعلام

جميع الجداول في قاعدة البيانات تتحول لديك إلى فئات والحقول إلى Property داخل كل فئة وأمور كثيرة لا يسع ذكرها هنا.



لماذا لا يتحول الدرس إلى الـ DataSet وكيفية إنشائها والتعامل معها



السؤال هنا لماذا لا نستخدم التقنيات الموجودة أصلاً 



أغلب الأعضاء في المنتدى يكتبون الأكواد بأنفسهم بنفس هذة الطريقة

كود :
Insert Into Emplye(ID,FirstNmame,LastName,Age,City,Phone,Address,FirstNmame,LastName,Age,City,Phone,Address
.ParamByName('LastName').Value:= Trim(TxtLastName.Text)
.ParamByName('Age').Value:= Trim(TxtAge.Text)
.ParamByName('City').Value:= Trim(TxtCity.Text)
.ParamByName('Phone').Value:= Trim(TxtPhone.Text)
.ParamByName('Address').Value:= Trim(TxtAddress.Text)
.ParamByName('FirstNmame').Value:= Trim(TxtFirstNmame.Text)
.ParamByName('LastName').Value:= Trim(TxtLastName.Text)
.ParamByName('Age').Value:= Trim(TxtAge.Text)
.ParamByName('City').Value:= Trim(TxtCity.Text)
.ParamByName('Phone').Value:= Trim(TxtPhone.Text)






لماذا كل هذا بينما أنت لا تحتاج إلى التعامل معها أصلاً 



أستطيع أنشاء ما يلزم لــ  جلب البيانات من قاعدة البيانات وتحريرها وحفظها وإدخال جديد وحذفها بدون أن أضغط زر واحد على الكيبورد 

وكل الجداول على شكل فئات أيظاً وجميع الكنترولات على النافذة مرتبطة بالحقول التي تخصها





ثلاث عناصر أنا حزين عليهم وبشدة : وبالأخص ( الـ DataSet )  من 13 سنة تقريباً وهذة العناصر موجودة ( منذ إصدارة 2005 ) 

الـ DataSet

الـ BindingSource

الـ TableAdapter





المسألة ليسة في قلت الشروحات أو المواضيع التي تتحدث عن هذة العناصر 

المشكلة في أغلب المبرمجين المبتدئين : لا يريد أصلاً هذة الطريقة ، مرفوضة بالنسة له ـ والسبب أنه لا يستطيع أن يفهمها وربما لا يريد أصلاً أن يفهمها 
[b]والبعض يقول أكرهها من كل قلبي[/b]




بارك الله فيك أخي viv على طرح هذا الموضوع 
الرد }}}


الردود في هذا الموضوع
RE: هل انتم مهتمون ببرنامج يكتب عنكم الكود - بواسطة عبدالله الدوسري - 09-05-18, 09:55 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Information ما هو الخطاء في الكود ProgressBar1 Mostafa201255411 1 191 26-11-25, 08:19 PM
آخر رد: asmarsou
  [VB.NET] مساعدة تعديل على الكود ZEEN4ZEEN 2 210 08-10-25, 02:20 PM
آخر رد: salamandal
Rainbow [كود] تصحيح الخطاء في الكود محمد مسافر 2 1,051 28-08-25, 09:13 AM
آخر رد: محمد مسافر
Rainbow [كود] تصحيح الخطاء في الكود محمد مسافر 0 841 27-08-25, 04:05 PM
آخر رد: محمد مسافر
  ما هو الخطأ فى هذا الكود خالد كامل1 10 1,140 28-05-25, 09:16 PM
آخر رد: خالد كامل1
  ارجو تعديل الكود بواستطة الاجراء المخزن new_programer 3 677 03-04-25, 02:44 PM
آخر رد: princelovelorn
  مساعدة في تحويل الكود من فيجوال بسيك 6 الى فيجوال دوت نت سيد أحمد 5 820 23-03-25, 10:54 PM
آخر رد: سيد أحمد
  ارجو تعديل الكود جلب البيانات عن طريق اجراء مخزن - مرفق مثال new_programer 0 620 05-02-25, 01:51 AM
آخر رد: new_programer
  ارجو تقيم الكود المرفق - جلب اعلي رقم لتسلسل نصي للباركود new_programer 4 604 30-01-25, 08:26 AM
آخر رد: new_programer
  هذا الكود لا يعمل بشكل صحيح لماذا ؟ PeterGhattas082460 3 448 21-12-24, 02:55 PM
آخر رد: aljzazy

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم