Заполнить контрольный список с элементами из базы данных?

Итак, я хочу заполнить / связать некоторые данные с контрольным списком, но не могу, кажется, binf правильные значения? Я хочу заполнить его информацией из ряда, а не целой колонкой, которая и происходит со мной. Вот какой-то код, чтобы показать вам, в чем проблема.

Это код в xaml

<form id="form1" runat="server">
<div>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [Option1], [Option2], [Option3] FROM [Questions] WHERE ([QuestionID] = @QuestionID)">
        <SelectParameters>
            <asp:Parameter DefaultValue="1" Name="QuestionID" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>

</div>
    <asp:CheckBoxList ID="CheckBoxList1" runat="server" DataTextField="QuestionID" DataValueField="QuestionID">
    </asp:CheckBoxList>
</form>

Это моя база данных (только пример) Ссылки из Гязо

Вопросы

Данные

Это мой код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Web.Configuration;

namespace ExampleCheckbox
{
public partial class Question_One : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

        SqlConnection con = new SqlConnection(connectionString);

        SqlCommand command = new SqlCommand();
        command.Connection = con;
        command.CommandType = CommandType.Text;
        command.CommandText = "Select * from Questions";

        SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
        DataSet questionsDataSet = new DataSet();


            con.Open();
            dataAdapter.Fill(questionsDataSet, "Question");

            DataTable dt = questionsDataSet.Tables["Question"];

            foreach (DataRow dr in dt.Rows)
            {
                ListItem newItem = new ListItem(dr["Option1"].ToString(), dr["QuestionID"].ToString());
                CheckBoxList1.Items.Add(newItem);
            }

            CheckBoxList1.DataSource = questionsDataSet;
            CheckBoxList1.DataTextField = "Option1";
            CheckBoxList1.DataValueField = "QuestionID";
            CheckBoxList1.DataBind();
    }
}

}

Это тоже проблема у меняПРОБЛЕМА

Спасибо

 crsMC25 апр. 2014 г., 22:06
@seanKendle Да, именно так. Большое спасибо!
 crsMC25 апр. 2014 г., 21:59
@ SeanKendle Нет, у меня еще нет, я также получаю сообщение об ошибке «И источник данных, и источник данных не определены», когда я возиться с ним, но я могу избавиться от этой ошибки.
 Sean Kendle25 апр. 2014 г., 22:02
Я бы либо избавился от этой петли и просто связалCheckBoxList1 сdtили удалите (пока закомментируйте) нижние 4 строки, которые связывают данныеснова, Кроме того, я настоятельно рекомендую более четко именовать ваши элементы управления и переменные. Может быть, очевидно, что они делают сейчас, но через несколько месяцев чтение и понимание вашего собственного кода займет вдвое больше времени.
 Sean Kendle25 апр. 2014 г., 22:05
О, я вижу, что ты сейчас говоришь. Вы буквально просто добавляете эту строку снова и снова вниз по столбцу. Позвольте мне написать правильный ответ.
 Sean Kendle25 апр. 2014 г., 21:57
Похоже, что вы просматриваете и привязываете данные вручную, один за другим. Вы пытались удалить 4 линии привязки данных внизу? Прокомментируйте это, и дайте мне знать, что вы придумали.
 crsMC25 апр. 2014 г., 22:03
@SeanKendle Я прокомментировал их, и я все еще получаю все элементы из Варианта1, когда хочу получить значения в Варианте1, 2, 3 и т. Д. Спасибо!
 crsMC25 апр. 2014 г., 22:05
Избавился от цикла, и он все еще работает, но опять же, я все еще получаю всю информацию из столбца «Option1», когда я хочу Option1, 2, 3

Ответы на вопрос(1)

Решение Вопроса

что вы хотите сделать, это циклически проходить по столбцам вместо строк и получать вместо них имена столбцов.

Проверьте этот вопрос / ответ здесь:

http://social.msdn.microsoft.com/Forums/en-US/4b6ede3b-093d-46f1-8766-d4a96608997d/loop-thru-a-datatable-for-columnnames-columnvalues?forum=csharpgeneral

Вот полный пример. Вот как должен выглядеть ваш код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Web.Configuration;

namespace ExampleCheckbox
{
public partial class Question_One : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

        SqlConnection con = new SqlConnection(connectionString);

        SqlCommand command = new SqlCommand();
        command.Connection = con;
        command.CommandType = CommandType.Text;
        command.CommandText = "Select * from Questions";

        SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
        DataSet questionsDataSet = new DataSet();


            con.Open();
            dataAdapter.Fill(questionsDataSet, "Question");

            DataTable dt = questionsDataSet.Tables["Question"];

            int i = 0;
            string str1 = string.Empty;
        int i = 0;
                    dr = dt.Rows(ClientID);   //whatever you're using for the row index
            foreach (DataColumn dc in dt.Columns)
            {
                ListItem newItem = new ListItem(dr[dc].ToString(), i.ToString());
                CheckBoxList1.Items.Add(newItem);
                i++;
            }
        }
    } 
        } 

}
 Sean Kendle25 апр. 2014 г., 22:39
Проверьте мое последнее изменение, я предоставил то, что ясчитать ваш код должен быть. Дайте мне знать, если это работает / не работает.
 crsMC25 апр. 2014 г., 22:25
Я удалил 4 строки привязки данных, но я все еще не уверен, как перебрать столбцы и создать новый элемент списка. Позже я захочу сохранить данные и отобразить их в конце программы. Есть ли шанс, что вы могли бы привести пример кода? Спасибо за ваше время, кстати, ценю это
 Sean Kendle25 апр. 2014 г., 22:21
Удалите 4 строки привязки данных, и вы захотите пройтись по каждому столбцу и создать новый listItem с именем столбца в качестве «текстовой» части listItem. Часть Data элемента listItem может быть такой же, если хотите, или индекс столбца, начинающийся с нуля, в зависимости от того, что вы собираетесь делать с этими данными позже.
 Sean Kendle25 апр. 2014 г., 22:41
Проверьте это снова, я без нужды перебираю ряды. Вам нужно только перебрать столбцы. Итак, он выводил ваши столбцы для каждой строки! d'ах!
 crsMC25 апр. 2014 г., 22:39
Хорошо, это работает сейчас, но выводит Option1, Option2, Option3, x3
 crsMC25 апр. 2014 г., 22:39
Как вывести значения внутри этих параметров? Извините за все вопросы
 crsMC25 апр. 2014 г., 22:16
Да, это помогло мне, но все еще не может заставить это работать, хотя я все еще пытаюсь. Спасибо!
 Sean Kendle25 апр. 2014 г., 22:12
Если я помог вам, пожалуйста, проголосуйте за мой ответ / комментарии, которые помогли, и примите это как ответ! Я вижу, ты здесь новенький! ^ _-
 crsMC25 апр. 2014 г., 22:43
Хорошо. Это то, что я получаюВЫХОД Как получить значения внутри опции 1,2 и 3 с QuestionID = 1?
 crsMC25 апр. 2014 г., 22:32
Понял, спасибо человек, действительно ценю это, потому что пытался заставить это работать в течение половины дня и не может найти никаких решений. Спасибо!
 crsMC25 апр. 2014 г., 22:08
Спасибо, прочитайте это сейчас и попытайтесь заставить это работать!
 Sean Kendle25 апр. 2014 г., 22:30
Только что обновил мой ответ. Попробуйте это на пустой странице. (Очевидно, вам понадобится это на переднем конце:<asp:CheckBoxList ID="CheckBoxList1" runat="server"></asp:CheckBoxList>, Ключ должен был пройти по столбцам, создать новый listItem для каждого столбца и установитьcolumnName какText значение каждого listItem, затем добавьте их вCheckBoxList1.
 Sean Kendle25 апр. 2014 г., 22:44
Я не должен понимать, что ты пытаешься сделать. Что именно вы выводите?
 Sean Kendle25 апр. 2014 г., 22:44

Ваш ответ на вопрос