首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成无限标签

问生成无限标签
EN

Stack Overflow用户
提问于 2011-08-31 14:30:16
回答 3查看 58关注 0票数 0

我编写了一个评论页面。它工作得很好,但是所有的SELECTED记录都是使用Response.Write(dr[0].ToString());显示的,但是使用Response.Write我们不能以有序的方式管理它们。因此,我决定在Labels中显示记录,但我对使用分页不感兴趣。那么,现在是否要在每次更新记录时自动添加Labels的新Set (即set是一组标签名称、电子邮件、网站和评论)?

我还尝试使用Labels而不是Response.Write,但在Label中只显示最后一条记录。

请告诉我如何显示每组labels中的每条记录。

我的代码如下。

代码语言:javascript
复制
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();
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-31 14:34:58

我建议你把你的大部分东西都刮掉,用一个中继器。

遵循以下如何使用中继器的基本文章http://www.sitepoint.com/asp-net-repeater-control/

票数 0
EN

Stack Overflow用户

发布于 2011-08-31 14:32:44

试试这个:

代码语言:javascript
复制
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/>运算符

票数 1
EN

Stack Overflow用户

发布于 2011-08-31 14:37:31

您是否可以使用绑定到数据源的中继器控件来检索您当前使用OdbcConnection获取的记录?然后使用它们的索引或其他标记来遍历它们。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7253357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档