首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用标签组件C#遍历数据

使用标签组件C#遍历数据
EN

Stack Overflow用户
提问于 2012-12-06 18:15:01
回答 2查看 811关注 0票数 0

我想使用label组件遍历从查询中获得的一些数据。

下面是我获取数据并读取数据的代码:

代码语言:javascript
运行
复制
private void populatelblDesc() 
    {
        conn.Open();
        string query;
        query = "select de.emp_username, poc.order_no , poc.company_id_no from dc_emp de, purch_order_carton poc";
        OracleCommand cmd = new OracleCommand(query, conn);
        OracleDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            lblDesc.Text = dr["emp_username"].ToString();
        }
        dr.Close();
        conn.Close();
    }

该查询将返回:

代码语言:javascript
运行
复制
**EMP_USERNAME**          **ORDER_NO**        **COMPANY_ID_NO**
Werner                    1                   1
Chris                     2                   1
Mike                      1                   2
Marc                      3                   1

现在,我想使用“下一步”按钮浏览数据。查询中的每个单独列必须显示在单独的标签中。因此在加载时,第一个标签将显示“Werner”,第二个标签"1",3d标签"1“。点击next将在第一个标签中显示"Chris“,第二个标签”2“和3d标签"1”再次点击next将显示"Mike“等

有没有人能帮我一下?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 18:37:00

将您的值保存在列表中的某个位置:

代码语言:javascript
运行
复制
List<String> LabelTextList = new List<String>();
private void populatelblDesc() 
{
    conn.Open();
    query = "select emp_username from dc_emp";
    OracleCommand cmd = new OracleCommand(query, conn);
    OracleDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
        this.LabelTextList.add(dr["emp_username"].ToString());
    }
    dr.Close();
    conn.Close();
}

然后使用一个整数值,从0开始,并通过单击下一步/上一步增加/减少它

代码语言:javascript
运行
复制
int i = 0;
public void next(){
    if (i+1 < this.LabelTextList.Count())
       lblText.text = this.LabelTextList[++i];
}
public void prev(){
    if (i-1 >= 0)
        lblText.text = this.LabelTextList[--i];
}

如果小于0或大于列表大小,则添加一些验证,这样就完成了。

票数 1
EN

Stack Overflow用户

发布于 2012-12-06 18:21:27

BindingSourceDataTableDataBindings结合使用。

或者在窗体上放置一个并将bs.DataSource设置为表,或者动态创建一个。

代码语言:javascript
运行
复制
var table = new DataTable();
table.Load(reader);
var bs = new BindingSource(table, null);
lblDesc.DataBindings.Add("Text", bs, "emp_username"),

btnNext.Click += ()
{
    bs.MoveNext();
};

btnPrev.Click += ()
{
    bs.MovePrevious();
};

您甚至可以在表单上放置一个BindingNavigator并将bindingNavigator1.BindingSource设置为您的BindingSource。它将管理First/Previous/Next/Last逻辑,而不需要一行代码。

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

https://stackoverflow.com/questions/13741359

复制
相关文章

相似问题

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