واضح آرشیو وب فارسی:سایت دانلود رایگان: ابتدا از ساخت بانک اطلاعاتی و جداول مورد نیاز برای این سیستم شروع میکنیم .
برای ساخت این سیستم از سه جدول استفاده میکنیم :
۱ – PollQuestions : این جدول شامل فیلدهای زیر میباشد و برای ذخیره سوالات نظر سنجی استفاده میشود :
PollID : این فیلد برای ذخیره ID مورد نظر استفاده میشود و آن را به صورت کلید اصلی تعریف میکنیم . Identity این فیلد را نیز Yes میکنیم .
AddedDate : تاریخ اضافه شدن سوال را مشخص میکند .
AddedBy : مشخص میکند این سوال توسط چه کسی ایجاد شده و این برای سایتهایی که چند مدیر دارند بسیار مناسب خواهد بود .
QuestionText : همانطور که از نام فیلد مشخص میباشد برای ذخیره سوال نظر سنجی استفاده میشود .
IsCurrent : مشخص میکند که آیا این نظرسنجی به عنوان نظرسنجی فعال انتخاب شود یا خیر .
IsArchived : که برای آرشیو کردن نظرسنجی ها به کار میرود
ArchivedDate : که تاریخ آرشیو شدن را نشان میدهد .
بر این اساس نظرسنجی فعال خواهد بود که Iscurrent آن برابر ۱ و IsArchived آن برابر ۰ باشد.
۲ – PollOptions : برای ذخیره Option های نظرسنجی به کار میرود و شامل فیلدهای زیر میباشد :
OptionID : برای ذخیره ID انتخاب ها به کار میرود ( Identity برابر ۱ انتخاب شود – کلید اصلی )
AddedDate : تاریخ اضافه شدن .
AddedBy : فرد ایجاد کننده .
ID : PollID نظرسنجی که انتخاب ها مربوط به آن است .
OptionText : متن انتخاب ها .
Votes : تعداد رای های مربوط به این انتخاب .
۳ – PollResult : این جدول برای ذخیره کاربرانی که به نظرسنجی ها رای میدهند استفاده میشود که شامل فیلدهای زیر میباشد :
ID : Poll ID نظرسنجی فعال
PollChoice : گزینه ای که توسط کاربر انتخاب شده .
MemberID : نام کاربری یا ID کاربر .
این جدول برای این استفاده میشود که بتوانیم تشخیص دهیم که چه کسی به این نظر سنجی رای داده است تا اگر خواست برای بار دوم رای دهد از این عمل وی جلوگیری کنیم . اگر میخواهید فقط کاربران عضو رای دهند میتوانید از MemberID برای ذخیره آنها استفاده کنید و اگر میخواهید کاربران مهمان هم رای دهند میتوانید از IP آنها استفاده کنید یا اینکه به جای استفاده از این جدول میتوانید از کوکی ها استفاده کنید ( که البته من این مورد رو پیشنهاد نمیکنم )
میرویم سر اصل مطلب :
————————
* ذخیره نظر سنجی ها در بانک *
با توجه به اینکه عمل ذخیره کردن سوالات و انتخاب ها با چند دستور ساده Insert انجام میشود از این قسمت میگذریم و به مرحله بعد میریم ( البته اگر در این قسمت مشکلی داشتید سوال کنید ) Stored Procedure های ذخیره در فایل Sample موجود است که میتوانید از آنها استفاده کنید .
توجه : مقدار فیلد Votes در جدول PollOptions باید در زمان ایجاد انتخاب ها ۰ باشد .
————————
** بازیابی نظرسنجی از بانک و قرار دادن آن در صفحه **
من برای این کار از کنترل PollControl استفاده کردم این ابزار کاملا رایگان میباشد اما قبل از استفاده از آن به بررسی خصوصیات این کنترل میپردازم :
Properties :
Canvote : اگر مقدار آن را True کنید کنترل به مود انتخاب میرود و کاربر میتواند یکی از گزینه ها را انتخاب کند و اگر مقدار آن را False کنید به مود نمایش میرود .
PollQuestion : سوالی که به کاربر نشان داده میشود .
CSSCaption : کلاس استایل شیت مربوط به Caption و سوال را مشخص میکند
CssPollClass : کلاس مورد استفاده کنترل را مشخص میکند .
ImagesFolder : پوشه حاوی تصاویر مربوط به این کنترل را مشخص میکند .
VoteCaption : متنی را نشان میدهد که تعداد کل آراء را نشان میدهد به عنوان مثال : ( تعداد آراء : )
همچنین این کنترل یک Event به نام CastVote نیز دارد که وقتی کاربر دکمه تایید را انتخاب میکند رخ میدهد .
اما برای استفاده از این کنترل فایل PollControl.Dll و فولدر Image مربوط و همچنین فایل های CSS مربوط به این کنترل را به پروژه اضافه میکنیم و از تگ زیر برای استفاده از آن استفاده میکنیم :
کد:
کد:
و یک نمونه از این کنترل را در صفحه قرار میدیم :
کد:
کد:
امیدوارم که خسته نشده باشید .
حالا میرسیم به جایی که باید نظرسنجی را از بانک بخونیم و در این کنترل قرار دهید .
برای اینکه ما باید نظرسنجی فعال را از بانک بگیریم و در کنترل قرار دهیم :
در Page_Load کدهای زیر را وارد کنید :
کد:
کد:
Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrings(“UserPolls”).ToString)
Dim cmd As SqlCommand Dim cmdtext As String
Dim obj As SqlDataReader
If Not Me.Page.IsPostBack Then Pollcontrol1.CanVote = True ‘ Add Question Text To Poll Control cmdtext = “select QuestionText from PollQuestions where Iscurrent=1 and Isarchived=0″
cmd = New SqlCommand(cmdtext, connection) connection.Open() Pollcontrol1.PollQuestion = cmd.ExecuteScalar connection.Close()
cmdtext = “select optionID,PollID,OptionText,Votes from PollOptions where pollID in(select PollID from Pollquestions where Iscurrent=1 and Isarchived=0)” cmd = New SqlCommand(cmdtext, connection) connection.Open()
obj = cmd.ExecuteReader ‘ Add Options To Poll Control : While obj.Read Pollcontrol1.AddPollAnswer(obj(“pollID”), obj(“optionID”), obj(“optionText”), obj(“votes”)) End While connection.Close() obj.Close() End If
خوب ما در اینجا متن سوال و option های آن را از جداول PollQuestion و PollOptions گرفتیم و در کنترل Poll Control قرار دادیم . یک بار برنامه را در مرورگر اجرا کنید :
همانطور که ملاحظه میکنید سوال و option های نظر سنجی با موفقیت در کنترل قرار گرفته اند.
حالا باید ایونت مربوط به کلیک کاربر را بنویسیم :
کدهای زیر را به ایونت Pollcontrol1_CastVote اضافه کنید ( به علت کمبود وقت من بدون چک کردن MemberID انتخاب کاربر را در بانک ذخیره میکنم )
کد:
کد:
‘ Update PollOptions Without Check MemberID Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrings(“UserPolls”).ToString)
Dim com As New SqlCommand(“update pollOptions set answercount=answercount+’1′ where OptionID=@answerID”, connection) connection.Open() com.Parameters.Add(“@optionID”, SqlDbType.Int).Value = Int(AnswerId) com.ExecuteNonQuery() connection.Close() Response.Redirect(“result.aspx”)
شما میتوانید از کوکی ، IP و یا کدکاربری و .. برای تشخیص کاربر رای دهنده استفاده کنید.
خوب ما در اینجا به مقدار فیلد Votes یکی اضافه میکنیم و سپس برای نمایش نتیجه به صفحه Result میرویم .
اما در Page_load صفحه Result کدهای زیر را مینویسیم :
کد:
کد:
Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrings(“UserPolls”).ToString)
Dim cmd As SqlCommand Dim cmdtext As String
Dim obj As SqlDataReader
If Not Me.Page.IsPostBack Then Pollcontrol1.CanVote = False cmdtext = “select optionID,PollID,OptionText,Votes from PollOptions where pollID in(select PollID from Pollquestions where Iscurrent=1 and Isarchived=0)”
cmd = New SqlCommand(cmdtext, connection) connection.Open()
obj = cmd.ExecuteReader ‘ Add Options To Poll Control :
While obj.Read Pollcontrol1.AddPollAnswer(obj(“pollID”), obj(“optionID”), obj(“optionText”), obj(“votes”)) End While connection.Close() obj.Close() End If
اگر دقت کرده باشید ما در اینجا Canvatoes را برایر False قرار دادیم تا به مد نمایش نتایج برویم .
نتیجه را در مرورگر خود ببینید.
منبع:سایت ایرانیان
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت دانلود رایگان]
[تعداد بازديد از اين مطلب: 416]