Ошибка привязки CheckBoxList (System.Data.Common.DataRecordInternal) - PullRequest
0 голосов
/ 10 декабря 2010

Я надеюсь, что мой вопрос описывает сам себя =) Я пытался сделать все, но я не понимаю, почему он не работает!

Мой CheckBoxList:

    <asp:CheckBoxList ID="chkbxlstCuisines" runat="server">
    </asp:CheckBoxList>

Мой код-позже:

    protected void Page_Load(object sender, EventArgs e)
    {
        string cuisinesSelectStatement = "SELECT Cuisines.CuisineId, Cuisines.CuisineType FROM Cuisines";


        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDbConnection"].ConnectionString);
        SqlCommand comm = new SqlCommand(cuisinesSelectStatement , conn);
        SqlDataReader reader1;

        conn.Open();
        reader1 = comm.ExecuteReader();
        chkbxlstCuisines.DataSource = reader1;
        chkbxlstCuisines.DataBind();

        while (reader1.Read())
        {
            chkbxlstCuisines.DataValueField = reader1["CuisineId"].ToString();
            chkbxlstCuisines.DataTextField = reader1["CuisineType"].ToString();
        }    
            //conn.Close();
    }

Я надеюсь, что кто-то поймет это, я знаю, что это будет маленькой ошибкой, потому что я исправил эту ошибку раньше, но теперь я действительно не знаю, в чем дело!Заранее спасибо, ребята!=)

Редактировать:

Я думаю, что проблема с кастингом, потому что выходные данные содержат пять флажков, а моя база данных содержит ровно пять элементов!

ВЫХОД:

System.Data.Common.DataRecordInternal
System.Data.Common.DataRecordInternal
System.Data.Common.DataRecordInternal
System.Data.Common.DataRecordInternal

Ответы [ 2 ]

1 голос
/ 10 декабря 2010

Вам не нужен код "while"; Ваш код должен быть:

protected void Page_Load(object sender, EventArgs e)
{
    string cuisinesSelectStatement = "SELECT Cuisines.CuisineId, Cuisines.CuisineType FROM Cuisines";


    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDbConnection"].ConnectionString);
    SqlCommand comm = new SqlCommand(cuisinesSelectStatement , conn);
    SqlDataReader reader1;
    chkbxlstCuisines.DataValueField = "CuisineId";
    chkbxlstCuisines.DataTextField = "CuisineType";
    conn.Open();
    reader1 = comm.ExecuteReader();
    chkbxlstCuisines.DataSource = reader1;

    chkbxlstCuisines.DataBind();


        //conn.Close();
}

DataValueField - это имя поля в связанном объекте, которое содержит значение. DataTextField - это имя поля в связанном объекте, который содержит отображаемый текст.

0 голосов
/ 26 января 2016
                cmd2.CommandText = "select * from upload";
                cmd2.Connection = con1;
                con1.Open();
                GridView1.DataSource = cmd2.ExecuteReader();
                GridView1.DataBind();
                con1.Close();
                cmd2.CommandText = "select * from document1";
                cmd2.Connection = con1;
                con1.Open();
                GridView2.DataSource = cmd2.ExecuteReader();
                GridView2.DataBind();
                con1.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...