جامعة أهلاً عرب

العودة   جامعة أهلاً عرب > كلية تصميم مواقع وتطبيقات الويب > تطبيقات ASP.NET و الـ WebServices

تطبيقات ASP.NET و الـ WebServices كل ما يتعلق بلغة ASP.NET والتقنيات المتعلقه بها، وكذلك المواضيع المتعلقه بـالـ WebServices وكيفية الإستفاده منها دون برمجتها

آخر 10 مشاركات *برنامج إدارة العقارات* تأجير * تسديد * مصروفات * تقارير * ( آخر مشاركة : مصلح بن صالح - مشاركات : 20 - )           »          طريقة فك حماية ورقة عمل في الاكسل ( آخر مشاركة : حسام نور - مشاركات : 2 - )           »          اخفاء المعادلات في شريط الصيغة ( آخر مشاركة : aymz077 - مشاركات : 6 - )           »          استفسار عن طباعة شهادات مدرسية ( آخر مشاركة : aymz077 - مشاركات : 2 - )           »          اطلبو أي لعبة وسآتيكم بها أنشاْ الله ( آخر مشاركة : MOUSSAKHRAIS - مشاركات : 1 - )           »          نظام الصادر و الوارد ( مشاركات : 31 - )           »          المحاسب المسلم لادارة المنشئات التجارية ( مشاركات : 2 - )           »          ارجو المساعده الترقيم التلقائي في نوذج فرعي ( مشاركات : 2 - )           »          فرصة دراسية ( آخر مشاركة : almohib_alsaghir - مشاركات : 2 - )           »          اخوي توت عنخ امون الحقني....كارثة حصلت ( آخر مشاركة : tutankhamoun - مشاركات : 1 - )

إنشاء موضوع جديد  إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 2008-01-09, 10:57 PM   #1 (permalink)
عميد كلية تحت التدريب
 
الصورة الرمزية FunctionSys
 
الجنس: ذكـــر
الجنسية: المملكة العربية السعودية
بلد الإقامة: السعودية
الوظيفة: تكنلوجيا المعلومات - برمجة
المؤهل الدراسي: البكلوريوس
التخصص العلمي:
كيف عرفت عن موقعنا: عن طريق صديق
تاريخ التسجيل: Jun 2005
المشاركات: 657
شكراً: 18
تم شكره 9 مرة في 6 مشاركة
معدل تقييم المستوى:5 FunctionSys 50- اعتقد انك ستكون مشهوراً في الفترة القادمة.FunctionSys 50- اعتقد انك ستكون مشهوراً في الفترة القادمة.

إرسال رسالة عبر Skype إلى FunctionSys
شرح كيفية عمل نظام تصويت Vote System بتقنية الـ ASP.NET

شرح كيفية عمل نظام تصويت Vote System بتقنية الـ ASP.NET


بسم الله الرحمن الرحيم
اللهم صلي على محمدٍ وآل محمد...

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

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

وقلت في نفسي لابد ان انشر هذا العلم للناس .. لانه العلم دين يُدان الله به ... به يكسب الانسان الطاعة في حياته وجميل الاحدوثه بعد مماته ..



اذا لا اطيل عليكم بالمقدمة .. اولا يجب علينا ان ننشا داتا بس .. ولتكن بالمواصفات التالية ..
طبعا الداتا بيس اكسس .. ليسهل التجارب ومن حاب يطور إلى السكيول سيرفر .. يستيطع من خلال الشرح...
طيب أنشأ داتا بيس باسم db1 وليكن فيها جدول باسم tbl_Polls وهو جدول الاسئلة .. او بالأحرى اسم التصويت وليكن فيه هذه الاعمدة التالية
PK_PollId من نوع ترقيم تلقائي (مفتاح اساسي )
Question من نوع تكست نص .. (وهذا الحقل هو الذي يحمل اسم التصويت على سبيل المثال "ماهي افضل تقنية ربط ؟ ")
Active من نوع رقم .. ( وهذا هو الذي سوف يحدد لنا هل التصويت هذا هو التصويت الحالي ام لا .. لانه سوف يكون هناك اكثر من تصويت اذا كان 1 يعني هو التصويت الحالي اما اذا كان 0 فهو التصويت سابق .أو غير نشط ..) كذلك تستطيع جعل القيمه ترو او فولس .. ولكن يجب عليك كمطور تعديل الكود فيما بعد .. ولكن في شرحنا هذا سوف يكون رقم ..

كما في الصورة التالية



بعد الانتهاء من عمل الجدول قم بحفظه .. وأنشا جدول آخر وهو جدول الخيارات ..
وليكن اسم الجدول tbl_PollOptions وكذلك وليكن فيه الاعمدة التالية :
PK_OptionId من نوع ترقيم تلقائي .. (مفتاح اساسي )
FK_PollId من نوع رقم ( وهو رقم السؤال وهو فورنق كي .. المأخوذ من جدول الاسئلة )
Answer من نوع نص ( وهو الابشن اي الجواب للسؤال المطروح في التصويت )
Votes من نوع رقم ( وهو عدد المصويت لكل خيار )

كما في الصورة التالية



بعد الانتهاء من عمل الجدول قم بعملية الحفظ واغلق الداتا بيس


الان افتح الـ Microsoft Visual Studio 2005 واختر منه موقع جديد .. ASP.NET Web Site وحدد اللغة وسوف نستخدم لغة الـ C#.NET
ثم أنشأ مجلد للمشروع وقم بتسميه على سبيل المثال WebSite_System_Vote
لا تنسى ان تضع الداتا بس التي تم انشاءها في مجلد المشروع في المجلد الـ App_Data

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

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

اذا لنباشر العمل ... أنشا الصفحات التالية ..
اولا صفحة الـ Default.aspx سوف تكون فيها اضافة السؤال اي التصويت ..
ثانياً صفحة الـ Answer.aspx سوف تكون فيها اضافة الاجوبة للتصويت ..
ثالثاً صفحة الـ voting.aspx سوف تكون فيها عرض التصويت لكي يدخل عليها الاشخاص ويقوموا بالتصويت من خلال التصويت والخيارات المتوفرة ..
رابعاً صفحة الـ ViewPoll.aspx سوف تكون فيها عرض نتائج التصويت ..

وهذا كل المشروع ..
طيب الان توجه إلى الصفحة الاولى وهي صفحة الـ Default.aspx واضف فيها التالي
1- تكست بوكس .. وقم بتغير اسمه إلى txt_Question
2- زر بوتن ... وقم بتغير اسمه إلى btn_Save وكذلك تسميه الزر اجعلها Save
3- RequiredFieldValidator1 وعدل على الكنتول واجعله على الـ txt_Question لكي لا يترك الحقل فارغ ..
4- ليبل وقم بتغير اسمه إلى lblStauts

لكي يصبح شكل الصفحة كالتالي :

كما في الصورة التالية



وقم بكتابة الكود التالي .. للصفحة

اولا .. قم بتعريف الـ oledb في الاعلى


كود
using System.Data.OleDb;


ثم عرف هذه المتغيرات في الكلاس الخاصة بالصفحة لكي يكون المتغير Public


كود
كود:
 
OleDbDataAdapter da;
DataSet ds = new DataSet();
OleDbCommand command;
String SQLs;
ومن ثم اضغط على زر الكومند الذي اسمه btn_Save وأضف هذا الكود التالي


كود
كود:
 
try
{
string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Server.MapPath(".\\App_Data\\db1.mdb");
 
//create a new OleDbConnection object using the connection string
OleDbConnection objConnect = new OleDbConnection(strConnect);
objConnect.Open();
 
command = new OleDbCommand();
command.Connection = objConnect;
//add new Vote.....
SQLs = "INSERT INTO tbl_Polls([Question],[Active])VALUES(?,?)";
command.CommandText = SQLs;
command.Parameters.Clear();
command.Parameters.AddWithValue("Question", txt_Question.Text);
command.Parameters.AddWithValue("Active", 1);
command.ExecuteNonQuery();
 
 
//Get Max Number Of Question
SQLs = "Select Max(PK_PollId) as PK_PollId from tbl_Polls";
da = new OleDbDataAdapter(SQLs, objConnect);
da.Fill(ds, "tbl_Polls");
 
 
 
//Save Max Number Of Question in IDs
Session["PK_PollId"] = ds.Tables[0].Rows[0]["PK_PollId"].ToString();
//Get Question for Perview it in Answer Page
Session["Question"] = txt_Question.Text;
//go to add Answer FOR THIS Question
Response.Redirect("Answer.aspx");
 
 
}
catch (Exception objError)
{
lblStauts.Text = "Error while accessing data " + objError.Message + " " + objError.Source;
}
شرح سريع للكود ..
اولا قمنا بتعريف المتغيرات في الاعلى لكي نستخدمهم


كود
كود:
 
OleDbDataAdapter da;
DataSet ds = new DataSet();
OleDbCommand command;
String SQLs;

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

وفي هذا الكود التالي



كود
كود:
 
//create a new OleDbConnection object using the connection string
OleDbConnection objConnect = new OleDbConnection(strConnect);
objConnect.Open();




قمنا بانشاء اتصال بالداتا بيس وفتحه..


وخلال هذا الكود التالي



كود
كود:
 
command = new OleDbCommand();
command.Connection = objConnect;
//add new Vote.....
SQLs = "INSERT INTO tbl_Polls([Question],[Active])VALUES(?,?)";
command.CommandText = SQLs;
command.Parameters.Clear();
command.Parameters.AddWithValue("Question", txt_Question.Text);
command.Parameters.AddWithValue("Active", 1);
command.ExecuteNonQuery();

قمنا بأتشتاق واحد من خاصية الكومند ..لكي نستطيع تنفيذ الاوامر ..
ومن ثم اسندنا الاتصال إلى الكومند لكي يتعرف على الداتا بيس ..
ومن ثم اسندنا جملة السكيول إلى المتغير الي يحمل اسم سكيول اس ..
ومن ثم قمنا بتهيئة البراتميتر .. وعمل كلير له ..
ومن ثم اضفنا في البراميتر قيمية التكست وهو السؤال..
وكذلك اضفنا قيمة العمود اكثيف .وجعلنا القيمة تساوي 1 وهذا يعني انه هذا التصويت نشط ..
ومن ثم نفذنا الامر لكي يتم الحفظ ..

وخلال الكود التالي


كود
كود:
 
//Get Max Number Of Question
SQLs = "Select Max(PK_PollId) as PK_PollId from tbl_Polls";
da = new OleDbDataAdapter(SQLs, objConnect);
da.Fill(ds, "tbl_Polls");

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


وخلال هذا الكود التالي


كود
كود:
 
//Save Max Number Of Question in IDs
Session["PK_PollId"] = ds.Tables[0].Rows[0]["PK_PollId"].ToString();
//Get Question for Perview it in Answer Page
Session["Question"] = txt_Question.Text;
//go to add Answer FOR THIS Question
Response.Redirect("Answer.aspx");


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

وبهذا انتهينا من صفحة اضافة التصويت ..

طيب الان حاول تسوي bulid للمشروع واذا طلع لك الـ output كل شيء سليم كمل الشرح كما التالي


كود
كود:
 
------ Build started: Project: C:\...\WebSite_System_Vote\, Configuration: Debug .NET ------
Validating Web Site
Building directory '/WebSite_System_Vote/'.
 
Validation Complete
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
__________________
اِلهى قَدْ جُرْتُ عَلى نَفْسي فِي النَّظَرِ لَها فَلَهَا الْوَيْلُ اِنْ لَمْ تَغْفِرْ لَها

اِلهى لَمْ يَزَلْ بِرُّكَ عَلَىَّ اَيّامَ حَياتي فَلا تَقْطَعْ بِرَّكَ عَنّى فى مَماتي
اِلهى كَيْفَ آيَسُ مِنْ حُسْنِ نَظَرِكَ لى بَعْدَ مَماتي وَاَنْتَ لَمْ تُوَلِّني اِلاّ الْجَميلَ فى حَياتي


http://hajhamid.com/flash/sound.swf
FunctionSys غير متواجد حالياً   رد مع اقتباس
الأعضاء الذين قالوا شكراً لـ FunctionSys على المشاركة المفيدة:
ola89 (2008-09-08)
مرحبا عزيزي الزائر
لمشاهدة باقي ردود هذا الموضوع, من فضلك قم بتسجيل الدخول او اضغط هنا للتسجيل.
إنشاء موضوع جديد  إضافة رد

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة
الانتقال السريع


الساعة الآن 11:11 PM.


Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd
إن الكتابات المنشورة في الجامعة ملك لأصحابها و هي لا تعبر عن وجهة نظر إدارة الجامعة


Search Engine Friendly URLs by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53