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;
}