private void ShowFragen()
        {
            UmfrageInfo umfr = SessionContainer.ReadFromSession(this).Umfrage;
            // alle Fragen zu der Umfrage aus der DB ziehen
            SqlParameter pAllFragen = DataAccessFragen.Paramr_UmfrageID;
            pAllFragen.Value = umfr.UmfrageID;
            DataParameters parameters = new	DataParameters();
            parameters.Add(pAllFragen);
            DSFragen dsAllFragen = new DataAccessFragen().Select(parameters);

            // DataGrid vorbereiten
            m_dgFragedarstellung.DataSource = dsAllFragen.fragen;
            m_dgFragedarstellung.DataBind();

            // Fragen in Datagrid eintragen
            for (int i = 0; i < m_dgFragedarstellung.Items.Count; i++)
            {
                // Titel setzen
                Label lb = (Label)DataGridAccess.GetControlFromDataGrid(m_dgFragedarstellung.Items[i], typeof(Label), 1, 0);
                if (lb != null)
                {
                    lb.Text = dsAllFragen.fragen[i].Text;
                }

                // Antwortmöglickeiten darstellen
                PutAntworten(m_dgFragedarstellung.Items[i],dsAllFragen.fragen[i].FrageID, dsAllFragen.fragen[i].Frageart);

            }
        }
        private void SaveFrage()
        {
            if (IsValid)
            {
                // Fehlermessage zurückssetzen
                m_lbValidatorMessageFrage.Visible = false;

                // Daten vorbereiten
                UmfrageInfo umfr = SessionContainer.ReadFromSession(this).Umfrage;
                int frageart = DBConstants.TextFrage;
                if (m_rdbTextfrage.Checked)
                {
                    frageart = DBConstants.TextFrage;
                }
                else if (m_rdbUndFrage.Checked)
                {
                    frageart = DBConstants.UndFrage;
                }
                else if (m_rdbOderFrage.Checked)
                {
                    frageart = DBConstants.OderFrage;
                }

                // Fragedatensatz aktualisieren oder neu anlegen
                DataAccessFragen daFragen = new DataAccessFragen();
                DSFragen dsFragen = daFragen.GetFrageByID(FrageID);
                if (dsFragen.fragen.Count == 0)
                {
                    // Frage besteht noch nicht in der DB, neuen Datensatz anlegen
                    dsFragen.fragen.AddfragenRow(umfr.UmfrageID, m_txtFrageTitel.Text.Trim(), frageart, 0);
                }
                else if (dsFragen.fragen.Count == 1)
                {
                    // Frage besteht schon, Datensatz aktualisieren
                    dsFragen.fragen[0].Text =  m_txtFrageTitel.Text.Trim();
                    dsFragen.fragen[0].Frageart = frageart;
                }
                daFragen.CommitChanges(dsFragen);

                // ID des neuen Datensatzes in die FrageID schreiben
                FrageID = dsFragen.fragen[0].FrageID;

                RefreshDGFragen();
            }
            else
            {
                m_lbValidatorMessageFrage.Visible = true;
            }
        }
        private void m_btnLoeschen_Click(object sender, System.EventArgs e)
        {
            ArrayList idCache = new ArrayList();

            // IDs aller selektierten Fragen ermitteln
            for (int i = 0; i < m_dgFragen.Items.Count; i++)
            {
                CheckBox cbx = (CheckBox)DataGridAccess.GetControlFromDataGrid(m_dgFragen.Items[i], typeof(CheckBox), 1, 0);
                if (cbx != null && cbx.Checked)
                {
                    // ID der selektierten Frage zwischenspeichern
                    idCache.Add(Convert.ToInt32(m_dgFragen.Items[i].Cells[0].Text));
                }
            }

            // Für jede ID den entsprechenden Datensatz aus der DB ziehen und löschen
            DataAccessFragen daFragen = new DataAccessFragen();
            foreach (int id in idCache)
            {
                // alle Datensätze aus dem DataSet löschen
                daFragen.DeleteFrage(id);
                // Falls die in Bearbeitung befindliche Frage gelöscht wird
                // die Fragebearbeitungsanzeige zurücksetzen
                if (id == FrageID)
                {
                    NeueFrage();
                }
            }

            RefreshDGFragen();
        }
 private void RefreshDGFragen()
 {
     SqlParameter pRUmfrageID = DataAccessFragen.Paramr_UmfrageID;
     pRUmfrageID.Value = SessionContainer.ReadFromSession(this).Umfrage.UmfrageID;
     DataParameters paramsFragen = new DataParameters();
     paramsFragen.Add(pRUmfrageID);
     DataAccessFragen daFragen = new DataAccessFragen();
     DSFragen dsFragen = daFragen.Select(paramsFragen);
     m_dgFragen.DataSource = dsFragen.fragen;
     m_dgFragen.DataBind();
     m_tblFragen.Visible = (dsFragen.fragen.Rows.Count > 0);
 }
        private void LoadFrage(int id)
        {
            // ID der zu bearbeitenden Frage speichern
            FrageID = id;

            // Frage neu aus der DB ziehen
            DSFragen dsFragen = new DataAccessFragen().GetFrageByID(id);

            if (dsFragen.fragen.Count != 1)
            {
                ClearFrage();
                NeueFrage();
                return;
            }

            // den Fragetitel eintragen
            m_txtFrageTitel.Text = dsFragen.fragen[0].Text;
            m_pnFrageErstellen.Visible = true;
            m_pnFrageUebernehmen.Visible = true;
            // Antwortmöglichkeiten vorsichtshalber ausblenden
            m_tblAntwortmoeglErstellen.Visible = false;

            // bei Und- und Oderfragen auch die Antwortmöglichkeiten eintragen
            int frageart = dsFragen.fragen[0].Frageart;
            if (frageart != DBConstants.TextFrage)
            {
                FillDGAntwErstellen(id);
                m_tblAntwortmoeglErstellen.Visible = true;
            }

            // Radiobutton entsprechend der Frageart setzen
            m_rdbTextfrage.Checked = false;
            m_rdbUndFrage.Checked = false;
            m_rdbOderFrage.Checked = false;
            switch(frageart)
            {
                case DBConstants.TextFrage:
                    m_rdbTextfrage.Checked = true;
                    break;
                case DBConstants.UndFrage:
                    m_rdbUndFrage.Checked = true;
                    break;
                case DBConstants.OderFrage:
                    m_rdbOderFrage.Checked = true;
                    break;
            }

            // neue Frage-Link anzeigen
            m_pnNeueFrage.Visible = true;
        }