C# 如何绑定数组中表的列,并在单击按钮事件时逐个显示结果?

C# 如何绑定数组中表的列,并在单击按钮事件时逐个显示结果?,c#,asp.net,sql-server,ado.net,arraylist,C#,Asp.net,Sql Server,Ado.net,Arraylist,我已经创建了将问题表中的问题列值存储到数组中的方法,现在我想在按钮单击事件中逐个显示在标签中 public ArrayList BindDataToArray() { ArrayList list = new ArrayList(); DataTable dt = new DataTable(); con = new SqlConnection(str); cmd = new SqlCommand("select Question from Questions"

我已经创建了将问题表中的问题列值存储到数组中的方法,现在我想在按钮单击事件中逐个显示在标签中

public ArrayList BindDataToArray()
{
    ArrayList list = new ArrayList();
    DataTable dt = new DataTable();
    con = new SqlConnection(str);
    cmd = new SqlCommand("select Question from  Questions", con);
    con.Open();
    adp = new SqlDataAdapter(cmd);
    adp.Fill(dt);

    foreach (DataRow dtrow in dt.Rows)
    {
        list.Add(dtrow);
    }
    return list;
}

将列表保存到会话中

初始化值为0的int,并将其存储在会话中

单击按钮时

从会话中获取列表和int

使用列表[index]值更新标签,其中index是int


将int值增加1,并在会话中重新保存。

似乎您正在寻找asp.net的控件。
示例

试试这个

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click"  
            CommandArgument="0" />//dEFINATION OF BUTTON ON ASPX PAGE

protected void Button1_Click(object sender, EventArgs e)
{
     ArrayList list = new ArrayList();
     list=BindDataToArray();
     int I=( Convert.ToInt32(Button1.CommandArgument));
     if (I < list.Count)
     {
          Label1.Text = list[I] as string; //Label in which u want to show message
          Button1.CommandArgument = (I + 1).ToString();
     }
     else
     {
         Label1.Text = "eND OF LIST";
         Button1.Enabled = false;
     }
}

public ArrayList BindDataToArray()
{
    ArrayList list = new ArrayList();
    DataTable dt = new DataTable();
    con = new SqlConnection(str);
    cmd = new SqlCommand("select Question from  Questions", con);
    con.Open();
    adp = new SqlDataAdapter(cmd);
    adp.Fill(dt);

    foreach (DataRow dtrow in dt.Rows)
    {
        list.Add(dtrow["Question"].ToString());
    }
    return list;
}
//ASPX页面上按钮的定义
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
ArrayList=新建ArrayList();
list=BindDataToArray();
inti=(Convert.ToInt32(Button1.CommandArgument));
如果(I
//在Aspx页面中
//在Aspx.cs中
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
ArrayList=新建ArrayList();
list=BindDataToArray();
inti=(Convert.ToInt32(Button1.CommandArgument.Count());
//inti=(Convert.ToInt32(Button1.CommandArgument));
如果(I
您想显示什么?我将从按钮单击事件的问题表中逐个显示问题我已经尝试过了,但它没有在标签中显示问题?没有错误它显示您返回的数据frim您的函数BindDataToArray()没有其他像这样修改您的BindDataToArray()。。foreach(DataRow dtrow in dt.Rows){list.Add(dtrow[“Queastion”].ToString());}否这是用于网格视图绑定的,每次绑定一次,但我想绑定问题表中的问题,并在按钮的单击事件上逐个显示在标签中。。
// in Aspx Page
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" 
            CommandArgument="1" /><asp:Label
           ID="Label1" runat="server" Text="Label"></asp:Label>
//in Aspx.cs

        protected void Button1_Click(object sender, EventArgs e)
        {
            ArrayList list = new ArrayList();
            list = BindDataToArray();
            int I = (Convert.ToInt32(Button1.CommandArgument.Count()));
            //int I = (Convert.ToInt32(Button1.CommandArgument));
            if (I < list.Count)
            {
                Label1.Text = list[I] as string; //Label in which u want to show message
                Button1.CommandArgument = (I + 1).ToString();
            }
            else
            {
                Label1.Text = "eND OF LIST";
                Button1.Enabled = false;
            }
        }
        public ArrayList BindDataToArray()
        {
            ArrayList list = new ArrayList();
            DataTable dt = new DataTable();
            //con = new SqlConnection(con);
            SqlCommand cmd = new SqlCommand("SELECT SurveyName FROM tblSurveyName", con);
            con.Open();
            SqlDataAdapter adp = new SqlDataAdapter(cmd);
            adp.Fill(dt);

            foreach (DataRow dtrow in dt.Rows) { list.Add(dtrow["SurveyName"].ToString()); }
            return list;
        }