نمایش نتایج 1 تا 30 از 30

نام تاپیک: آموزش :: ساخت سیستم نظرسنجی

  1. #1

    آموزش :: ساخت سیستم نظرسنجی

    کلیه حقوق این مظلب متعلق به سایت www.Barnamenevis.org میباشد .
    نقل از نوشته های این مقاله منوط به ذکر نام منبع و نویسنده آن است.

    با سلام و با اجازه اساتید .
    حتما برای شما پیش آمده باشد که بخواهید یک سیستم نظرسنجی در سایت خود قرار دهید اما شاید وقت ساخت این سیستم را نداشته باشید . به همین خاطر من آموزش ساخت این سیستم را برای شما آماده کردم که امیدوارم مفید واقع بشه :

    ابتدا از ساخت بانک اطلاعاتی و جداول مورد نیاز برای این سیستم شروع میکنیم .
    برای ساخت این سیستم از سه جدول استفاده میکنیم :

    1 - PollQuestions : این جدول شامل فیلدهای زیر میباشد و برای ذخیره سوالات نظر سنجی استفاده میشود :



    PollID : این فیلد برای ذخیره ID مورد نظر استفاده میشود و آن را به صورت کلید اصلی تعریف میکنیم . Identity این فیلد را نیز Yes میکنیم .
    AddedDate : تاریخ اضافه شدن سوال را مشخص میکند .
    AddedBy : مشخص میکند این سوال توسط چه کسی ایجاد شده و این برای سایتهایی که چند مدیر دارند بسیار مناسب خواهد بود .
    QuestionText : همانطور که از نام فیلد مشخص میباشد برای ذخیره سوال نظر سنجی استفاده میشود .
    IsCurrent : مشخص میکند که آیا این نظرسنجی به عنوان نظرسنجی فعال انتخاب شود یا خیر .
    IsArchived : که برای آرشیو کردن نظرسنجی ها به کار میرود
    ArchivedDate : که تاریخ آرشیو شدن را نشان میدهد .

    بر این اساس نظرسنجی فعال خواهد بود که Iscurrent آن برابر 1 و IsArchived آن برابر 0 باشد.

    2 - PollOptions : برای ذخیره Option های نظرسنجی به کار میرود و شامل فیلدهای زیر میباشد :




    OptionID : برای ذخیره ID انتخاب ها به کار میرود ( Identity برابر 1 انتخاب شود - کلید اصلی )
    AddedDate : تاریخ اضافه شدن .
    AddedBy : فرد ایجاد کننده .
    ID : PollID نظرسنجی که انتخاب ها مربوط به آن است .
    OptionText : متن انتخاب ها .
    Votes : تعداد رای های مربوط به این انتخاب .

    3 - PollResult : این جدول برای ذخیره کاربرانی که به نظرسنجی ها رای میدهند استفاده میشود که شامل فیلدهای زیر میباشد :




    ID : Poll ID نظرسنجی فعال
    PollChoice : گزینه ای که توسط کاربر انتخاب شده .
    MemberID : نام کاربری یا ID کاربر .

    این جدول برای این استفاده میشود که بتوانیم تشخیص دهیم که چه کسی به این نظر سنجی رای داده است تا اگر خواست برای بار دوم رای دهد از این عمل وی جلوگیری کنیم . اگر میخواهید فقط کاربران عضو رای دهند میتوانید از MemberID برای ذخیره آنها استفاده کنید و اگر میخواهید کاربران مهمان هم رای دهند میتوانید از IP آنها استفاده کنید یا اینکه به جای استفاده از این جدول میتوانید از کوکی ها استفاده کنید ( که البته من این مورد رو پیشنهاد نمیکنم )
    میرویم سر اصل مطلب :
    ------------------------

    * ذخیره نظر سنجی ها در بانک *
    با توجه به اینکه عمل ذخیره کردن سوالات و انتخاب ها با چند دستور ساده Insert انجام میشود از این قسمت میگذریم و به مرحله بعد میریم ( البته اگر در این قسمت مشکلی داشتید سوال کنید ) Stored Procedure های ذخیره در فایل Sample موجود است که میتوانید از آنها استفاده کنید .
    توجه : مقدار فیلد Votes در جدول PollOptions باید در زمان ایجاد انتخاب ها 0 باشد .

    ------------------------

    ** بازیابی نظرسنجی از بانک و قرار دادن آن در صفحه **
    من برای این کار از کنترل PollControl استفاده کردم این ابزار کاملا رایگان میباشد اما قبل از استفاده از آن به بررسی خصوصیات این کنترل میپردازم :
    Properties :
    Canvote : اگر مقدار آن را True کنید کنترل به مود انتخاب میرود و کاربر میتواند یکی از گزینه ها را انتخاب کند و اگر مقدار آن را False کنید به مود نمایش میرود .

    PollQuestion : سوالی که به کاربر نشان داده میشود .

    CSSCaption : کلاس استایل شیت مربوط به Caption و سوال را مشخص میکند
    CssPollClass : کلاس مورد استفاده کنترل را مشخص میکند .
    ImagesFolder : پوشه حاوی تصاویر مربوط به این کنترل را مشخص میکند .
    VoteCaption : متنی را نشان میدهد که تعداد کل آراء را نشان میدهد به عنوان مثال : ( تعداد آراء : )

    همچنین این کنترل یک Event به نام CastVote نیز دارد که وقتی کاربر دکمه تایید را انتخاب میکند رخ میدهد .

    اما برای استفاده از این کنترل فایل PollControl.Dll و فولدر Image مربوط و همچنین فایل های CSS مربوط به این کنترل را به پروژه اضافه میکنیم و از تگ زیر برای استفاده از آن استفاده میکنیم :


    <%@ Register Assembly="PollControl" Namespace="EccSoft.Web.UI" TagPrefix="cc1" %>

    و یک نمونه از این کنترل را در صفحه قرار میدیم :


    <cc1:PollControl id="Pollcontrol1" runat="server" csscaption="PollCaption" cssclass="Normal"
    csspollclass="PollBack" votescaption="تعداد آراء :"
    width="206px" style="font-family: tahoma" Font-Names="tahoma"></cc1:PollControl>


    امیدوارم که خسته نشده باشید .
    حالا میرسیم به جایی که باید نظرسنجی را از بانک بخونیم و در این کنترل قرار دهید .
    برای اینکه ما باید نظرسنجی فعال را از بانک بگیریم و در کنترل قرار دهیم :
    در Page_Load کدهای زیر را وارد کنید :

    Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrin gs("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.ConnectionStrin gs("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.ConnectionStrin gs("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 قرار دادیم تا به مد نمایش نتایج برویم .
    نتیجه را در مرورگر خود ببینید :




    خوب در اینجا کار به پایان رسیده و شما با موفقیت یک سیستم نظر سنجی ساختید .

    موفق و پیروز باشید .
    نویسنده : رامین احمدی

    ::::::::::: لطفا برای تشکر به جای ایجاد پست جدید از دکمه تشکر استفاده نمایید :::::::::::::

    دانلود سورس :
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شیراز
    پست
    64
    سلام من از شما برای استفاده از این کد در asp.net 2003 کمک کی خوام

  3. #3
    شما در VS 2003 چه مشکلی دارید ؟

  4. #4
    فکر نمیکنم برای اجرا در محیط 2003 مشکلی داشته باشید !

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شیراز
    پست
    64
    این کنترل PollControl در کد نویسی ایراد می گیره

  6. #6
    چه اروری دریافت کردید ؟

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شیراز
    پست
    64
    با سلام
    با کد نویسی این کد در ویرایش گر html در قسمت برنامه نویسی چنین کنترلی رو قبول نمی کند

  8. #8
    کاربر دائمی آواتار hamidyha
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    تهران
    پست
    100
    با سلام
    من با نرم افزار دریم ویوور سایت طراحی کرده ام پس از ایجاد بانک اطلاعاتی در SQL Server دو مشکل دارم
    1- در ارتباط با بانک خطا تولید می کند در صورتی که اگر بانک Access باشد مشکلی ندارد وقت خروجی دیتا را نمایش نمی‌دهد.
    2- کدهای نوشته شده را در کجای صفحه وارد نمایم
    با تشکر

  9. #9
    نقل قول نوشته شده توسط hamidyha مشاهده تاپیک
    با سلام
    من با نرم افزار دریم ویوور سایت طراحی کرده ام پس از ایجاد بانک اطلاعاتی در SQL Server دو مشکل دارم
    1- در ارتباط با بانک خطا تولید می کند در صورتی که اگر بانک Access باشد مشکلی ندارد وقت خروجی دیتا را نمایش نمی‌دهد.
    2- کدهای نوشته شده را در کجای صفحه وارد نمایم
    با تشکر
    1 - لطفا کدی که برای کانکت شدن نوشتید را اینجا بزارید تا ببینم خطا برای چیست
    2 - آیا شما از Asp.net برای نوشتن کدهاتون استفاده میکنید ؟ اگر جواب بله میباشد اگر به فایل ضمیمه توجه کنید متوجه خواهید شد که در کجا باید استفاده کنید .

  10. #10
    کاربر دائمی آواتار hamidyha
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    تهران
    پست
    100
    در نرم افزار دریم ویور در بخش Application روی گزینه Database کلیک می‌کنم و ... که تصویر آن ضمیمه می‌باشد. لطفاً راهنمایی کنید
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg dr1.JPG‏ (61.7 کیلوبایت, 1655 دیدار)

  11. #11
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مهر 1384
    پست
    163

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    سلام دوست عزيز
    ميشه لطف كنين بگين براي اينكه تعداد آراء رو در بالاي كنترل برداريم ، بايد چيكار كنم ؟(البته فقط در قسمت مربوط به راي دادن )ممنونم

  12. #12
    کاربر دائمی آواتار jafaripur
    تاریخ عضویت
    شهریور 1385
    پست
    216

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    لااقل به اسم خودت که میزنی بگو که فقط ترجمش کردی ...
    لینک اصلی این کنتل : http://www.codeproject.com/KB/aspnet...l_Control.aspx

  13. #13
    کاربر دائمی آواتار jafaripur
    تاریخ عضویت
    شهریور 1385
    پست
    216

    Wink نقل قول: آموزش :: ساخت سیستم نظرسنجی

    فقط یه ایراد داره و این هستش که وقتی هیچ کدوم از گزینه ها رو انتخاب نمی کنید با وجود این که اولین گزینه انتخاب شده ولی با کلیک بر روی یکی از گزینه ها AnswerID درست رو میفرسته واگر نه اگر کلیک نکنید مقدار AnswerID =1 میفرسته ...
    نسخه اصلاح شده کنترل رو میزارم ...
    سورس رو می زارم که اگه خواستین تغییر بدینش ...
    فایل های ضمیمه فایل های ضمیمه

  14. #14
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    تهران
    سن
    39
    پست
    2

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    با سلام.
    میشه در مورد دیتا تایپ فیلدها و رلیشن شیپ و کلا جزییات دیتابیس مربوط به نظرسنجی توضیحی بدین؟
    با تشکر

  15. #15

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    اگه برای C#‎ هم انجام می دادید عالی می شد

  16. #16
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    کد سی شارپ ؟

  17. #17

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    باسلام
    آیا بانک اطلاعاتی موحود بر روی ایم فایل از نوع sql2000 هست؟
    آخم من نمیتونم بر روی sql2000 این فایل را attach کنم......

  18. #18
    کاربر دائمی آواتار jingiliboyz
    تاریخ عضویت
    دی 1388
    محل زندگی
    تهران
    پست
    183

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    من برنامه رو گرفتم اجرا شد ایراد هم نگرفت مرسی از همه دوستان

  19. #19

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    کد سی شارپ

    protected void Page_Load(object sender, EventArgs e)
    {
    if (IsPostBack)
    return;


    string connStr = "packet size=4096;Data Source=192.168.1.233,1433;Network Library=DBMSSOCN;Initial Catalog=*****;User ID=****;Password=****";
    SqlConnection connpoll = new SqlConnection(connStr);
    poll1.CanVote = true;
    string cmdtext = "select QuestionText from PollQuestions where Iscurrent=1 and Isarchived=0";
    SqlCommand cmd = new SqlCommand(cmdtext, connpoll);
    connpoll.Open();

    poll1.PollQuestion = (string) cmd.ExecuteScalar();
    // connpoll.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, connpoll);
    // connpoll.Open();
    SqlDataReader objpoll = cmd.ExecuteReader();
    while (objpoll.Read())
    {
    poll1.AddPollAnswer((int)objpoll["pollID"], (int)objpoll["optionID"], (string)objpoll["optionText"],(int) objpoll["votes"]);
    }
    connpoll.Close();
    objpoll.Close();


    }

    protected void poll1_CastVote(int PollId, string AnswerId, int MemberId)
    {
    // Update PollOptions Without Check MemberID
    lblPDate.Text = "ddddd";
    string connStr2 = "packet size=4096;Data Source=192.168.1.233,1433;Network Library=DBMSSOCN;Initial Catalog=***;User ID=****;Password=***x";
    SqlConnection connpoll = new SqlConnection(connStr2);
    SqlCommand conn2 = new SqlCommand("update pollOptions set votes=votes+'1' where OptionID=@optionID", connpoll);
    connpoll.Open();
    conn2.Parameters.Add("@optionID", SqlDbType.Int).Value = Convert.ToUInt32(AnswerId);
    conn2.ExecuteNonQuery();
    connpoll.Close();
    Response.Redirect("result.aspx");
    }

    این هم کد نتیجه نظرسنجی
    protected void Page_Load(object sender, EventArgs e)
    {

    string connStr = "packet size=4096;Data Source=192.168.1.233,1433;Network Library=DBMSSOCN;Initial Catalog=****;User ID=****l;Password=****x";
    SqlConnection connpoll = new SqlConnection(connStr);
    poll1.CanVote = false;
    string cmdtext = "select optionID,PollID,OptionText,Votes from PollOptions where pollID in(select PollID from Pollquestions where Iscurrent=1 and Isarchived=0)";
    SqlCommand cmd = new SqlCommand(cmdtext, connpoll);
    connpoll.Open();

    SqlDataReader objpoll = cmd.ExecuteReader();
    while (objpoll.Read())
    {

    poll1.AddPollAnswer((int)objpoll["pollID"], (int)objpoll["optionID"], (string)objpoll["optionText"], (int)objpoll["votes"]);
    }
    connpoll.Close();
    objpoll.Close();

    }
    آخرین ویرایش به وسیله ghazizadeh : سه شنبه 18 اسفند 1388 در 13:27 عصر

  20. #20
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1388
    پست
    88

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    سلام دوستان .

    من می خوام از این کنترل استفاده کنم ولی اون رو در کنترل هام ندارم choss item چنین گزینه ای نداره .

  21. #21
    کاربر دائمی آواتار nasr
    تاریخ عضویت
    آذر 1382
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره فکر هوا عشق زمین مال من است
    پست
    2,018

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    سلام
    کسی این را برای سی شارپ نداره؟

    ممنون

  22. #22
    کاربر دائمی آواتار nasr
    تاریخ عضویت
    آذر 1382
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره فکر هوا عشق زمین مال من است
    پست
    2,018

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    سلام
    من تبدیلش کردم به C sharp
    امیدوارم به دردتون بخوره
    فایل های ضمیمه فایل های ضمیمه

  23. #23

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    آقا سلام من تازه می خوام سی شارپ یاد بگیرم از کجا باید شروع کنم

  24. #24

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    نقل قول نوشته شده توسط nasr مشاهده تاپیک
    سلام
    من تبدیلش کردم به C sharp
    امیدوارم به دردتون بخوره
    دوست عزیز من خیلی سعی کردم بازش کنم اما نشد :(

  25. #25

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    دستتون درد نکنه.
    خیلی خوبه. ایراد هم نداره فقط یه اشکال کوچیک داره اونم اینکه :
    obj.Close() قبل از connection.Close() باید بیاید ! نه بعدش

    سوال چطوری border دور باتن رای دهید را بردارم یا عکس این باتن را تغییر بدم ؟

  26. #26

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    سلام. من کد شما رو به C#‎ تبدیل کردم ولی خطاهای زیادی میده و نمیدونم چطور درستش کنم.
    اگه ممکنه کد C#‎ این آموزش رو هم بزارید.
    ممنون

  27. #27
    کاربر دائمی آواتار amir22448
    تاریخ عضویت
    تیر 1391
    محل زندگی
    بوشهر
    پست
    199

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    نقل قول نوشته شده توسط rtech مشاهده تاپیک
    کلیه حقوق این مظلب متعلق به سایت www.Barnamenevis.org میباشد .
    نقل از نوشته های این مقاله منوط به ذکر نام منبع و نویسنده آن است.

    با سلام و با اجازه اساتید .
    حتما برای شما پیش آمده باشد که بخواهید یک سیستم نظرسنجی در سایت خود قرار دهید اما شاید وقت ساخت این سیستم را نداشته باشید . به همین خاطر من آموزش ساخت این سیستم را برای شما آماده کردم که امیدوارم مفید واقع بشه :

    ابتدا از ساخت بانک اطلاعاتی و جداول مورد نیاز برای این سیستم شروع میکنیم .
    برای ساخت این سیستم از سه جدول استفاده میکنیم :

    1 - PollQuestions : این جدول شامل فیلدهای زیر میباشد و برای ذخیره سوالات نظر سنجی استفاده میشود :



    PollID : این فیلد برای ذخیره ID مورد نظر استفاده میشود و آن را به صورت کلید اصلی تعریف میکنیم . Identity این فیلد را نیز Yes میکنیم .
    AddedDate : تاریخ اضافه شدن سوال را مشخص میکند .
    AddedBy : مشخص میکند این سوال توسط چه کسی ایجاد شده و این برای سایتهایی که چند مدیر دارند بسیار مناسب خواهد بود .
    QuestionText : همانطور که از نام فیلد مشخص میباشد برای ذخیره سوال نظر سنجی استفاده میشود .
    IsCurrent : مشخص میکند که آیا این نظرسنجی به عنوان نظرسنجی فعال انتخاب شود یا خیر .
    IsArchived : که برای آرشیو کردن نظرسنجی ها به کار میرود
    ArchivedDate : که تاریخ آرشیو شدن را نشان میدهد .

    بر این اساس نظرسنجی فعال خواهد بود که Iscurrent آن برابر 1 و IsArchived آن برابر 0 باشد.

    2 - PollOptions : برای ذخیره Option های نظرسنجی به کار میرود و شامل فیلدهای زیر میباشد :




    OptionID : برای ذخیره ID انتخاب ها به کار میرود ( Identity برابر 1 انتخاب شود - کلید اصلی )
    AddedDate : تاریخ اضافه شدن .
    AddedBy : فرد ایجاد کننده .
    ID : PollID نظرسنجی که انتخاب ها مربوط به آن است .
    OptionText : متن انتخاب ها .
    Votes : تعداد رای های مربوط به این انتخاب .

    3 - PollResult : این جدول برای ذخیره کاربرانی که به نظرسنجی ها رای میدهند استفاده میشود که شامل فیلدهای زیر میباشد :




    ID : Poll ID نظرسنجی فعال
    PollChoice : گزینه ای که توسط کاربر انتخاب شده .
    MemberID : نام کاربری یا ID کاربر .

    این جدول برای این استفاده میشود که بتوانیم تشخیص دهیم که چه کسی به این نظر سنجی رای داده است تا اگر خواست برای بار دوم رای دهد از این عمل وی جلوگیری کنیم . اگر میخواهید فقط کاربران عضو رای دهند میتوانید از MemberID برای ذخیره آنها استفاده کنید و اگر میخواهید کاربران مهمان هم رای دهند میتوانید از IP آنها استفاده کنید یا اینکه به جای استفاده از این جدول میتوانید از کوکی ها استفاده کنید ( که البته من این مورد رو پیشنهاد نمیکنم )
    میرویم سر اصل مطلب :
    ------------------------

    * ذخیره نظر سنجی ها در بانک *
    با توجه به اینکه عمل ذخیره کردن سوالات و انتخاب ها با چند دستور ساده Insert انجام میشود از این قسمت میگذریم و به مرحله بعد میریم ( البته اگر در این قسمت مشکلی داشتید سوال کنید ) Stored Procedure های ذخیره در فایل Sample موجود است که میتوانید از آنها استفاده کنید .
    توجه : مقدار فیلد Votes در جدول PollOptions باید در زمان ایجاد انتخاب ها 0 باشد .

    ------------------------

    ** بازیابی نظرسنجی از بانک و قرار دادن آن در صفحه **
    من برای این کار از کنترل PollControl استفاده کردم این ابزار کاملا رایگان میباشد اما قبل از استفاده از آن به بررسی خصوصیات این کنترل میپردازم :
    Properties :
    Canvote : اگر مقدار آن را True کنید کنترل به مود انتخاب میرود و کاربر میتواند یکی از گزینه ها را انتخاب کند و اگر مقدار آن را False کنید به مود نمایش میرود .

    PollQuestion : سوالی که به کاربر نشان داده میشود .

    CSSCaption : کلاس استایل شیت مربوط به Caption و سوال را مشخص میکند
    CssPollClass : کلاس مورد استفاده کنترل را مشخص میکند .
    ImagesFolder : پوشه حاوی تصاویر مربوط به این کنترل را مشخص میکند .
    VoteCaption : متنی را نشان میدهد که تعداد کل آراء را نشان میدهد به عنوان مثال : ( تعداد آراء : )

    همچنین این کنترل یک Event به نام CastVote نیز دارد که وقتی کاربر دکمه تایید را انتخاب میکند رخ میدهد .

    اما برای استفاده از این کنترل فایل PollControl.Dll و فولدر Image مربوط و همچنین فایل های CSS مربوط به این کنترل را به پروژه اضافه میکنیم و از تگ زیر برای استفاده از آن استفاده میکنیم :


    <%@ Register Assembly="PollControl" Namespace="EccSoft.Web.UI" TagPrefix="cc1" %>

    و یک نمونه از این کنترل را در صفحه قرار میدیم :


    <cc1:PollControl id="Pollcontrol1" runat="server" csscaption="PollCaption" cssclass="Normal"
    csspollclass="PollBack" votescaption="تعداد آراء :"
    width="206px" style="font-family: tahoma" Font-Names="tahoma"></cc1:PollControl>


    امیدوارم که خسته نشده باشید .
    حالا میرسیم به جایی که باید نظرسنجی را از بانک بخونیم و در این کنترل قرار دهید .
    برای اینکه ما باید نظرسنجی فعال را از بانک بگیریم و در کنترل قرار دهیم :
    در Page_Load کدهای زیر را وارد کنید :

    Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrin gs("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.ConnectionStrin gs("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.ConnectionStrin gs("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 قرار دادیم تا به مد نمایش نتایج برویم .
    نتیجه را در مرورگر خود ببینید :




    خوب در اینجا کار به پایان رسیده و شما با موفقیت یک سیستم نظر سنجی ساختید .

    موفق و پیروز باشید .
    نویسنده : رامین احمدی

    ::::::::::: لطفا برای تشکر به جای ایجاد پست جدید از دکمه تشکر استفاده نمایید :::::::::::::

    دانلود سورس :

    سلام خیلی خوب بود ولی اگه می شه به زبان C#‎ هم بزارید.

  28. #28
    کاربر دائمی آواتار amir22448
    تاریخ عضویت
    تیر 1391
    محل زندگی
    بوشهر
    پست
    199

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    نقل قول نوشته شده توسط hamid_cross مشاهده تاپیک
    آقا سلام من تازه می خوام سی شارپ یاد بگیرم از کجا باید شروع کنم
    سلام. بهتره از کتاب های انگیلیسی شروع کنید.این کتاب مفیده:

    http://books.google.com/books?id=pKT...20C%23&f=false

  29. #29
    کاربر دائمی آواتار razeghaik1
    تاریخ عضویت
    آبان 1389
    محل زندگی
    عسلویه
    پست
    258

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    سلام.دوستان کسی کد C#‎ این مطلب (ساخت سیستم نظر سنجی رو داره؟!)
    من تبدیلش کردم اما چواب نداد و ارور می ده و کدی هم که این دوستمون قرار داد باز جواب نداد.

  30. #30
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,016

    نقل قول: آموزش :: ساخت سیستم نظرسنجی

    سورس این برنامه به زبان vb ایا دوستان C#‎‎ دارن!!
    از سایت های convert هم استفاده کردم اما خطا داره.
    آخرین ویرایش به وسیله fakhravari : پنج شنبه 27 مهر 1391 در 13:29 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •