با سلام ،
یکی از دوستان آموزش نظرسنجی در asp.net رو خواسته بودن که امروز براتون آموزشش میدم.

در نظر سنجی ما یک سوال داریم و چندین گزینه که کاربر می تونه یکی از گزینه ها (جواب ها) رو انتخاب و نظرشو با کلیک روی یک دکمه ثبت کنه.
برای پیاده سازی نظر سنجی به 2 روش میشه عمل کرد:
  1. با کمک دو جدول
  2. با کمک سه جدول
در روش اول شما هیچ کنترلی روی کسانی که رای میدن ندارید و ممکنه که مثلا یه کاربر 50 بار بیاد و رای بده!
در روش دوم شما این امکان را دارید که مثلا هر کاربر فقط بتونه توی 24 ساعت یک بار رای بده و یا کلا هر کاربر فقط بتونه فقط یک بار رای بده.

سایت نت نیک
روش اول: سیستم نظرسنجی با دو جدول

در این روش شما دو عدد جدول بصورت زیر نیاز دارید:

جدول Questions :
نوع ستون
اسم ستون
 INTId
(500)NVARCHARTitle

جدول Answers :
 نوع ستون
اسم ستون
 (500)NVARCHARTitle
INT
 Number
INT
Questions_Id

توضیح اینکه Number تعداد رای های هر گزینه رو قراره درخودش نگهداری کنه.

خوب حال مدیر سایت یک سوال و چندین جواب در دیتابیس ذخیره می کنه.
در این زمان شما سوال رو در جدول Questions ذخیره می کنین و آی دی اون رو به همراه جواب و به همراه عدد 0 داخل جدول Answers می ریزید.
دقت کنین که من درون ستون Number مقدار 0 رو ریختم که بدین معنی است که هنوز کسی با گزینه های ما رای نداده.

حال یک رپیتر یا گرید ویو داخل صفحتون اضافه کنین و خروجی دستور زیر رو توش بریزید:


سپس یک رادیو باتن لیست داخل صفحه قرار بدین و خروجی این دستور رو توش بریزید :


برای ریختن اجرا کردن دستورات بالا روی دیتابیس و ریختن خروجی توی کنترل ها می تونین از روش کد نویسی دستی (ADO.Net) و یا از یک کنترل SqlDataSource ساده استفاده کنین (توی پروژه های دانشجویی روش دوم بیشتر کاربرد داره چون ساده تره و کدنویسی کمتری هم داره، ولی توی پروژه های واقعی از روش اول استفاده می کنن چون کنترل خیلی بیشتری روی خطاها دارین و ارور ها رو می تونین بصورت کامل مدیریت کنین ، چون نمایش صفحه ارور تیو پروژه واقعی خیلی خیلی بده و به کل عابروی برنامه نویس سایت رو می بره ...)

خوب حالا تنها مشکلمون اینه که زمانی که صفحه رو اجرا می کنیم ، هیچ کدوم از گزینه ها به حالت انتخاب در نیومده و بدین صورت کاربر می تونه بدون انتخاب هیچ گزینه ای ، دکمه "ثبت نظر" رو بزنه!
برای رفع این مشکل باید کاری کنیم که وقتی صفحه لود میشه ، همیشه اولین گزینه نظر سنجیمون به حالت انتخاب در بیاد ، بدین صورت کاربر چاره ای به جز انتخاب یک گزینه نخواهد داشت و برنامه نویس خوب برنامه نویسیه که جلوی شیطنت کاربرای سایت رو بگیره

خوب برای این کار درون رویداد لود صفحه کد زیر رو می نویسیم:

خوب این مشکل هم حل شد. فقط دقت کنین که حتما باید شرط if رو بنویسین تا موقعی که دکمه "ثبت نظر" رو میزنیم ، کد بالا عمل نکنه و فقط در زمانی که تازه وارد صفحه میشیم این کد عمل کنه. چون در صورت عدم استفاده از شرط if ، زمانی که دکمه رو میزنین کد بالا عمل می کنه و گزینه انتخابی بر می گرده روی اولین گزینه و بعد عملیات ثبت انجام میشه و بدین صورت کاربرا هر گزینه ای که انتخاب کنن ، گزینه اول براشون تیو دیتابیس ذخیره میشه.
این مورد بر می گرده به مبحث postBack و آموزشش از حوصله این مقاله خارجه.

حالا فقط می مونه ثبت نظر.
قبل از پرداختن به کدهای ثبت نظر باید دقت کنین که موقعی که خروجی دستور SQL بالا رو دارین توی رادیو باتن لیست می ریزید ، حتما باید خصوصیات DataTextField و DataValueField رو ست کنین.

برای ثبت نظر کافیه که دستور زیر رو روی دیتابیس اجرا کنین(این کارو  هم می تونین از طریق ADO.Net انجام بدین و هم با کمک کنترل SqlDataSource)



در دستور بالا کافی است آی دی گزینه ای که کاربر انتخاب کرده (RadioButtonList1.SelectedValue) رو جای x بذارید.


به همین راحتی شما یک سیستم نظر سنجی ایجاد کردید.
امیدوارم که از این آموزش هم لذت برده باشید.
» در مقاله بعدی سایت نت نیک ،(آموزش ساخت نظر سنجی در asp.net | بخش دوم)  آموزش نظر سنجی به کمک روش دوم (سه جدوله) رو خواهم گفت.
"سایت آموزشی نت نیک"

نوشته شده در تاریخ پنجشنبه 13 تیر 1392    | توسط: ح.م    | طبقه بندی: آموزش ASP.NET،     | نظرات()