Создание неограниченного количества ярлыков - PullRequest
0 голосов
/ 31 августа 2011

Я закодировал для страницы комментариев.Он работает нормально, но все записи SELECTED отображаются с использованием Response.Write(dr[0].ToString());, но с использованием Response.Write мы не можем управлять ими упорядоченным образом.Итак, я решил отобразить записи в Labels, но мне не интересно использовать нумерацию страниц.Итак, теперь для автоматического добавления нового Set из Labels (то есть set - это набор меток, имени, адреса электронной почты, веб-сайта и комментариев) при каждом обновлении записей?

Я также пытался использоватьLabels вместо Response.Write, но в ярлыках отображается только последняя запись.

Скажите, пожалуйста, как отобразить каждую запись в каждом наборе labels.

Мой код следует.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Odbc;

public partial class comment : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=test_com;" + "UID=root;" + "PASSWORD=*****;" + "OPTION=3";
        OdbcConnection MyConnection = new OdbcConnection(MyConString);

            MyConnection.Open();
            OdbcCommand cmd = new OdbcCommand("Select name, email, website, comments from awm_comments", MyConnection);
            OdbcDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows == false)
            {
                throw new Exception();
            }
            while (dr.Read())
            {
                Response.Write(dr[0].ToString());
                Response.Write(dr[1].ToString());
                Response.Write(dr[2].ToString());
                Response.Write(dr[3].ToString());

                /* test using labels. Being displayed only last record. 
                Label1.Text = dr[0].ToString();
                Label2.Text = dr[1].ToString();
                Label3.Text = dr[2].ToString();
                Label4.Text = dr[3].ToString();
                */
            }
    }
    protected void Submit_Click(object sender, EventArgs e)
    {
        string name = tb_name.Text;
        string email = tb_email.Text;
        string website = tb_website.Text;
        string comment = tb_comment.Text;

        string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=test_com;" + "UID=root;" + "PASSWORD=******;" + "OPTION=3";
        OdbcConnection MyConnection = new OdbcConnection(MyConString);
        OdbcCommand cmd = new OdbcCommand("INSERT INTO awm_comments(name, email, website, comments, notify)VALUES(?, ?, ?, ?, ?)", MyConnection);
        cmd.Parameters.Add("@email", OdbcType.VarChar, 255).Value = name;
        cmd.Parameters.Add("@alternate_email", OdbcType.VarChar, 255).Value = email;
        cmd.Parameters.Add("@ipaddr", OdbcType.VarChar, 255).Value = website;
        cmd.Parameters.Add("@security_question", OdbcType.VarChar, 255).Value = comment;
        if (cb_notify.Checked == true)
        {
            int not = 1;
            cmd.Parameters.Add("@security_question", OdbcType.Int, 11).Value = not;
        }
        else if (cb_notify.Checked == false)
        {
            int not = 0;
            cmd.Parameters.Add("@security_question", OdbcType.Int, 11).Value = not;
        }
        MyConnection.Open();
        cmd.ExecuteNonQuery();
        MyConnection.Close();
    }
}

Ответы [ 3 ]

1 голос
/ 31 августа 2011

Попробуйте это:

Label1.Text += dr[0].ToString() + "<br/>";
Label2.Text += dr[1].ToString() + "<br/>";
Label3.Text += dr[2].ToString() + "<br/>";
Label4.Text += dr[3].ToString() + "<br/>";

+= оператор для добавления текста к существующему тексту Labels и <br/> для разрыва строки

0 голосов
/ 31 августа 2011

Не могли бы вы использовать элемент управления повторителем, привязанный к источнику данных, который извлекает записи, которые вы в настоящее время получаете, используя OdbcConnection?Затем используйте их индексы или другие теги для их итерации.

http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/data/repeater.aspx

0 голосов
/ 31 августа 2011

Я бы посоветовал вам поцарапать большую часть того, что у вас есть, и использовать ретранслятор.

Следуйте приведенным ниже основным правилам использования репитера http://www.sitepoint.com/asp-net-repeater-control/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...