asp.net anket yapımı (1.bölüm)

Bugün asp.net ile anket uygulamsı yapıyoruz. Anket işleyiş mantığı şöyle olacak; site admin panelinden bir anket ekleyeceğiz ve bu ankete istediğimiz kadar seçenek ekleyebileceğiz. Sonra da bu anketi ve seçeneklerini ana sayfamızda gösterip oy kullanıma açacğız. Bu yazıda ilk bölüm olan admin tarafından anket ekleme ve eklenen ankete istenildiği kadar seçenek ekleme işlemini yapıyor olacağız.
Şimdi Ağşağıdki gibi bir anket ekleme  formumuz olsun;


Default.aspx

<table align="center" cellpadding="2" style="width: 400px">

            <tr>

                <td colspan="2">

                    Anket Sorusu</td>

            </tr>

            <tr>

                <td colspan="2">

                    <asp:TextBox ID="txtSoru" runat="server" Height="74px" TextMode="MultiLine"

                        Width="329px"></asp:TextBox>

                </td>

            </tr>

            <tr>

                <td colspan="2">

                    Seçenek Sayısı :

                    <asp:TextBox ID="txtAdet" runat="server"></asp:TextBox>

                    <asp:Button ID="btnSecenekEkle" runat="server" BorderStyle="Solid"

                        BorderWidth="1px" Font-Size="12px" ForeColor="#CC3300"

                        onclick="btnSecenekEkle_Click" Text="Seçenek Oluştur" />

                </td>

            </tr>

            <tr>

                <td>

                    <asp:PlaceHolder ID="phBaslik" runat="server"></asp:PlaceHolder>

                </td>

                <td>

                    <asp:PlaceHolder ID="phTextBoxlar" runat="server"></asp:PlaceHolder>

                </td>

            </tr>

            <tr>

                <td align="center" colspan="2">

                    <asp:Button ID="Button1" runat="server" BorderStyle="Solid" BorderWidth="1px"

                        Font-Size="13px" ForeColor="#CC3300" onclick="Button1_Click"

                        Text="Anket Kaydet" />

                    <asp:Label ID="lblDurum" runat="server" Text="Label"></asp:Label>

                </td>

            </tr>

 

        </table>

 

Veritabımım
İki tablo olacak

AnketSoru Tablosu
---------------------  
AnketID (otomatiksayi)
Soru (metin)

AnketCevap Tablosu
--------------------
CevapID (otomatiksayi)
AnketID (sayi)
Cevap (metin)
Hit (sayi)

 

Form ve veritabanı  tamam Şimdi de kodları yazalım

 

using System;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.Data.OleDb;

 

public partial class _Default : System.Web.UI.Page

{

    TextBox mytxt;

    OleDbConnection cnn = new OleDbConnection("Provider=microsoft.jet.oledb.4.0; data source=" + HttpContext.Current.Server.MapPath("~/App_Data/anket.mdb") + "");

 

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

 

 

 

    private int SoruEkle(string soru)

    {

        cnn.Open();

        OleDbCommand cmd = new OleDbCommand();

        cmd.CommandText = "Insert into AnketSoru (Soru) values ('" + soru + "')";

        cmd.Connection = cnn;

        cmd.ExecuteNonQuery();

        cmd.CommandText = "Select @@Identity";

        int donenid =Convert.ToInt32(cmd.ExecuteScalar());

        cnn.Close();

        return donenid;

 

    }

    private void CevapEkle(int anket_id, string[] cevap)

    {

        cnn.Open();

        OleDbCommand cmd;

 

 

        string str = "";

        foreach (string item in cevap)

        {

          cmd  = new OleDbCommand("Insert into Anketcevap (AnketID,Cevap,Hit) values (@anketid,@cevap,@hit)", cnn);

            cmd.Parameters.AddWithValue("@anketid",anket_id);

            cmd.Parameters.AddWithValue("@cevap",item);

            cmd.Parameters.AddWithValue("@hit",0);

            cmd.ExecuteNonQuery();

            cmd.Dispose();

 

        }

        cnn.Close();

 

    }

    protected void btnSecenekEkle_Click(object sender, EventArgs e)

    {

        Olustur(Convert.ToInt32(txtAdet.Text));

    }

 

    private void Olustur(int adet)

    {

        ViewState["CevapSayi"] = adet;

        for (int i = 0; i < adet; i++)

        {

            mytxt = new TextBox();

            mytxt.ID = "txtSecenek" + i.ToString();

            phTextBoxlar.Controls.Add(mytxt);

            phTextBoxlar.Controls.Add(new LiteralControl("<br>"));

 

            phBaslik.Controls.Add(new LiteralControl(" Anket Cevap "+(i+1).ToString()));

            phBaslik.Controls.Add(new LiteralControl("<br>"));

        }

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        if (ViewState["CevapSayi"] == null)

            return;

        int sid = SoruEkle(txtSoru.Text);

        string[] str = new string[Convert.ToInt32(ViewState["CevapSayi"].ToString())];

        for (int i = 0; i < Convert.ToInt32(ViewState["CevapSayi"].ToString()); i++)

        {

            str[i] = Request.Form["txtSecenek" + i.ToString()].ToString();

        }

        CevapEkle(sid, str);

        ViewState["CevapSayi"] = null;

        lblDurum.Text = "anket Eklendi";

 

 

 

    }

}

 

Anket Ekleme işlemini gerçekleştirdik. İkinci kısımda da eklenen anketleri sayafa gösterip oylama yaptıracağız

 

Görüşmek üzere


Bunu beğen
Paylaş

Yorumlar
Yorum Yaz
İsim : (*)
E-mail :
Web Adresi:
:
(*)
 
Kapat