تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] طلب مساعدة بسيطه لانهاء هذا المشروع
#1
Smile 
السلام عليكم ورحمة الله وبركاته
إخوانى المبرمجين العرب لى مشروع نفذته بمكتبة الادو العاديه الكلاسيك وخبرتى قليلة بالدوتنت
وأحتاج تنفيذه بالادودوتنت النظام المتصل
أنا حاولت أنفذه بالأدودوتنت كونيكتيدمود وعدلت عليه فقط فى كود شاشة الدخول LogIn.vb
أما باقى الشاشات الكود المعمول له تعليق باللون الاخضر هو الذى أحتاج أعمله بلادودوتنت النظام المتصل
أفادنا الله وإياكم وجعله فى ميزان حسناتكم  Smile Heart
المشروع وقاعدة البيانات توجد فى مجلد مضغوط بعنوان test ado.net 
يوجد على هذا الرابط
https://www.dropbox.com/s/g1lodkazhq2vwu6/test%20ado.net.rar?dl=0
الرد }}}
تم الشكر بواسطة:
#2
من المهم وضع تفسير لكل كائنات قاعدة البيانات لفهم سير العمليات بداخلها وسهولة التعامل مع الكود عند كتابته فى بيئة فيجوال بيزيك دوتنت
ولهذا شرح لتصميم قاعدة البيانات بجداولها والاجراءات الفرعيه Procedures و الفنكشن Functions والديجرام Diagram_0
فإلى الشرح ويمكنكم الاطلاع على كل الكائنات من قاعدة البيانات المرفقه بالمشروع لتسهيل العمل
نصمم الجداول التاليه:-
جدول العملاء Customers

حقول الجدول
تسمية الحقل النوع السماح بفارغ (Null) التسميه وصف النوع
ID int رقم تسلسل العميل مفتاح أساسى وترقيم تلقائى من خاصية Is Identity=yes
FirstName Nvarchar(10) الاسم الاول حقل نصى طوله (10)
LastName Nvarchar(10) الاسم الاخير حقل نصى طوله (10)
Company Nvarchar(20) الشركه حقل نصى طوله (20)
JobTitle Nvarchar(50) الوظيفه حقل نصى طوله (50)
BusinessPhone Nvarchar(15) تليفون العمل حقل نصى طوله (15)
HomePhone Nvarchar(15) تليفون المنزل حقل نصى طوله (15)
MobilePhone Nvarchar(15) الموبايل حقل نصى طوله (15)
Email Nvarchar(30) البريد الالكترونى حقل نصى طوله (30)
Street Nvarchar(30) الشارع حقل نصى طوله (30)
City Nvarchar(15) المدينه حقل نصى طوله (15)
AccountNo Nvarchar(15) رقم حساب العميل حقل نصى طوله (15)
PinCode Nvarchar(10) الرقم الكودى حقل نصى طوله (10)
Status bit حالة التفعيل حقل نصى طوله (15)

جدول الإيداع Deposits

حقول الجدول
تسمية الحقل النوع السماح بفارغ (Null) التسميه وصف النوع
ID int رقم تسلسل العميل مفتاح أساسى وترقيم تلقائى من خاصية Is Identity=yes
CustomerID int رقم حساب العميل حقل رقمى
DateMove Datetime التاريخ حقل تاريخ
Amount int مبلغ الايداع حقل رقم عشرى ويقبل نقدىه
Details nvarchar(50) التفاصيل حقل نصى طوله (50)
EmployeeID int رقم الموظف حقل رقمى

جدول السحب Withdrawals

حقول الجدول
تسمية الحقل النوع السماح بفارغ (Null) التسميه وصف النوع
ID int رقم تسلسل العميل مفتاح أساسى وترقيم تلقائى من خاصية Is Identity=yes
CustomerID int رقم حساب العميل حقل رقمى
DateMove Datetime التاريخ حقل تاريخ
Amount int مبلغ السحب حقل رقم عشرى ويقبل نقدىه
Details nvarchar(50) التفاصيل حقل نصى طوله (50)
EmployeeID int رقم الموظف حقل رقمى







جدول الموظفين Employees

تسمية الحقل النوع السماح بفارغ (Null) التسميه وصف النوع
ID int رقم تسلسل العميل مفتاح أساسى وترقيم تلقائى من خاصية Is Identity=yes
FirstName Nvarchar(10) الاسم الاول حقل نصى طوله (10)
LastName Nvarchar(10) الاسم الاخير حقل نصى طوله (10)
jobTitle Nvarchar(50) الوظيفه حقل نصى طوله (50)
BusinessPhone Nvarchar(15) تليفون العمل حقل نصى طوله (15)
HomePhone Nvarchar(15) تليفون المنزل حقل نصى طوله (15)
MobilePhone Nvarchar(15) الموبايل حقل نصى طوله (15)
Email Nvarchar(30) البريد الالكترونى حقل نصى طوله (30)
Street Nvarchar(30) الشارع حقل نصى طوله (30)
City Nvarchar(15) المدينه حقل نصى طوله (15)
UserName Nvarchar(15) إسم المستخدم حقل نصى طوله (15)
Password Nvarchar(15) كلمة السر حقل نصى طوله (15)
Status bit حالة التفعيل منطقى 0 أو 1 أو القيمه True أو False 0
CustomersForm bit شاشة العملاء "
DepositsForm bit شاشة الايداعات "
WithdrawalsForm bit شاشة السحب "
NewCustomers bit شاشة عميل جديد "
DeleteCustomer bit حذف عميل "
Admin bit مدير قاعدة البيانات "
حقول الجدول




جدول المستخدمين Users


************
ومن تقنية قواعد البيانات SQL Severe التى أثبتت نجاحها هو أمن وحماية البيانات Security
نستطيع أن نحدد من هم الذين لهم القدره والصلاحيه لمجرد رؤية فقط أو التعديل أو الحذف أو حتى إنشاء القواعد أو الجداول وإنشاء مستخدمين وعمل بعض الاجراءات الفرعيه التى تخدم المشروع ككل فهى تعتبر من مميزات هذا النوع من قواعد البيانات 0
****************
بعد ذلك أنشأنا مستخدم جديد لقاعدة البيانات ATM
New Login . نضغط زر الفأره اليمين و نختار Login نحدد Security

من تبويب Geeneral
ونسميه Dev1 Login name
ونعين له كلمة سر الدخول لقاعدة البيانات وهى 123 SQL Server authentication
ونحدد له صلاحياته:-
من تبويب User Mapping
نحدد قاعدة البياناتATM من Users Mapped to this Login:
نحدد علامة صح أمام db_owner Database Role membership for: ATM





إنشاء إجراءات فرعيه Procedures
Stored Procedures New Stored Procedure من Programmbility
** أو من شريط الادوات القياسى نضغط مفتاح New Query 0
كما نرى هنا مجموعة الاجراءات الفرعيه المستخدمه للمشروع الحالى 0


















أول هذه الإجراءات هو إجراء للقيام بعملية الايداع dbo. AddDeposit من قاعدة البيانات 0


لتفتح شاشة فارغه لانشاء البروسيدجر فنكتب بها الكود كما ترى
شرح آلية هذا الاجراء الفرعى
عندما نبحث عن عميل من خلال رقم حسابه من الدوتنت وإستدعينا على هذا الاجراء الذى يقوم بعملية إيداع
مررنا له أربعة بارامترات والخامسه قيمة التارخ والتى سنمررها للقاعده من خلال مهامه أنشئت من قبل سنوضحها فيما بعد تأخذ التوقيت المصرى هذه المهمه dbo.EgyptDatTime
من خلال جملة Insert Into
والتى تتطلب إرسال هذه القيم من خلال شاشة الايداع بالدوتنت
--------------------.-.-.-.-.-.-.-.-------------------
ثانى هذه الإجراءات هو إجراء للقيام بعملية السحب dbo. Addwithdrawals من قاعدة البيانات 0


شرح آلية هذا الاجراء الفرعى

نفس ما حدث فى الاجراء الخاص بحركة الايداع ولكنه عمليه عكسيه هنا وتتطلب أربعة إحتمالات من هنا قبل الشروع فى هذا الحدث:
• التحقق من رصيد العميل قبل البدء
• التحقق من رقم حساب العميل
• التحقق من إسم الموظف المسئول
• إذا تحققت الشروط ينفذ عملية السحب
وطبع رساله تأكيد : ' The Operation Completed Succesfully '
++++++++********++++++++
المهام Functions
من شريط الادوات القياسى نضغط مفتاح New Query 0
أول هذه المهام هو مهمة معرفة حالة التفاعل للعميل dbo. CustomersStatus من قاعدة البيانات 0

شرح آلية CustomersStatus:

هذه المهمه نحتاجها عند دخول أحد العملاء من خلال ماكينات ال ATM بالشارع
للتأكد من حالة تفاعلية العميل لتعود به True or False .
بعد إختبار إسم المستخدم وكلمة المرور وهنا حددنا طول كلا المتغيرين مطابقة لطول الحقلين حجزنا متغير @Stc ليحمل قيمة حقل الحاله للعميل لتعود به لل Client ب True or False
وهنا مررنا ثلاثة بارامترات لرقم حساب عميل والرقم الكودى له والبرامتر الثالث هو حالة التفعيل للعميل .
ثم من جملة الاستعلام Select هنا نستفسر عن ذلك وتوجد ثلاث إحتمالات:
• أن العميل أدخل بيانات خاطئه (غير مسجله) وهنا يأتى دور الأمر @@ROWCOUNT
إذا رجعت بصفر تعنى أن العميل ليس مسجل وبالتالى سيخرج من الامر ولا يكمل 0
• إذا رجعت بواحد تعنى أن العميل موجود وحالته متوقف Suspend وبالتالى سيخرج من الامر ولا يكمل 0
• إذا رجعت بإثنين تعنى العميل موجود وحالته فعال وبالتالى سيكمل وينتقل للخطوه التاليه ليفتح للعميل 0









ثانى هذه المهام هو مهمة معرفة التوقيت المصرى dbo. EgypteDateTimeمن قاعدة البيانات 0



شرح آلية dbo. EgypteDateTime:

تقوم هذه المهمه أنها تقوم بحساب الوقت والتاريخ حسب توقيت جرينتش فالداله
GETUTCDATE وظيفتها أنها تعود بالوقت والتاريخ حسب توقيت جرينتش
والداله DATEADD أنها تزيد الوقت والتاريخ
وبداخل القوس أدخلنا المعامل الزمنى للساعهHOUR والقيمه 2 ساعتين هى فارق الوقت بين مصر وبين جرينتش
ثالث: هذه المهام هو مهمة معرفة حالة التفاعل للعميل dbo. EmployeeStatusمن قاعدة البيانات 0



شرح آلية EmployeeStatus:

هذه المهمه للتأكد من حالة تفاعلية الموظف المسؤل عن السحب بالبنك لتعود به True or False
بعد إختبار إسم المستخدم وكلمة المرور وهنا حددنا طول كلا المتغيرين مطابقة لطول الحقلين حجزنا متغير @Stc ليحمل قيمة حقل الحاله للموظف لتعود به لل Client ب True or False
وهنا مررنا ثلاثة بارامترات لاسم المستخدم للموظف وكلمة المرور له والبرامتر الثالث هو حالة التفعيل للموظف.
ثم من جملة الاستعلام Select هنا نستفسر عن ذلك وتوجد ثلاث إحتمالات:
• أن الموظف أدخل بيانات خاطئه (غير مسجله) وهنا يأتى دور الأمر @@ROWCOUNT
إذا رجعت بصفر تعنى أن الموظف ليس مسجل وبالتالى سيخرج من الامر ولا يكمل 0
• إذا رجعت بواحد تعنى أن الموظف موجود وحالته متوقف Suspend وبالتالى سيخرج من الامر ولا يكمل 0
• الموظف موجود وحالته فعال وبالتالى سيكمل وينتقل للخطوه التاليه ليفتح للموظف 0


رابعا: هذه المهام هو مهمة معرفة حالة التفاعل للعميل dbo. GetBalanceمن قاعدة البيانات 0


شرح آلية GetBalance:

لحساب الرصيد الحالى للعميل نستعلم عنه بالجداول الثلاثه بدلالة رقم حساب العميل AccountNo
وحجزنا مخزن بالذاكره @AccNo ووضعنا به رقم العميل ID من جدول العملاء Customers
عندما يكون الرقم الذى أدخله الموظف يساوى رقم حساب العميل AccountNo
ونرى هنا المعامل الذى نوعه decimal لانه سيحمل مبالغ نقديه وبها كسور
ثم حجزن مخزن @TotalDeposits decimal ليجمع إيداعات هذا الحساب
ثم حجزن مخزن @TotalWithdrawals decimal ليجمع مسحوبات هذا الحساب
ثم حجزن مخزن @Balance decimal لطرح المسحوبات من الإيداعات
وهنا إستخدمنا coalesce لتعود بصفر عندما يكون إجمالى الايداعات أو المسحوبات = NUL








خامس: هذه المهام هو مهمة معرفة حالة التفاعل للعميل dbo.IsAdminمن قاعدة البيانات 0



شرح آلية GetBalance:
إرسال أربعة معاملات
حالة التفعيل Status @St
مدير قاعدة البيانات Admin @Ad
إسم الموظف UserName @UID
كلمة السر Password @Pwd


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

أرجو دخول أحد لاستكمال كتابة الاكواد بالدوتنت 2010 VB.NT بمكتبة الادودوتنت النظام المتصل
وشاشات البرنامج جاهزه بأدواتها حتى الاكواد ولكنها مرتبطه بقاعدة البيانات من خلال مكتبة الادوكلاسيك وأنا عملت الاكواد الخاصه بها تعليق باللون الاخضر
كما حضراتكم سترونها ***
الرد }}}
تم الشكر بواسطة:
#3
هل من إجابه لسؤالى لو سمحتم لى؟
لا أحد رد عليا حتى الان!!!
الرد }}}
تم الشكر بواسطة:



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


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