【问题标题】:Retrieved row values from query to textboxes从查询到文本框检索行值
【发布时间】:2014-10-06 18:20:40
【问题描述】:

如何将从包含 ONE COLUMN 和 MULTIPLE ROWS 的查询中检索到的值放入文本框。我的意思是 txtBox1 将具有第一行的值, txtBox2 将具有第二行的值,依此类推。我所知道的是如何检索每列而不是行的值。

【问题讨论】:

  • 到目前为止你尝试过什么?请显示一些代码,它会检索您的数据。
  • 你怎么知道你的 TextBoxes 对于所有的行都足够了?
  • 我还没有尝试过任何事情,因为我真的不知道该怎么做。数据库中的数据数量是有限的,无法更改,或者您无法再添加任何数据。

标签: c# mysql textbox rows


【解决方案1】:

也许:

List<TextBox> allTextBoxes = this.Controls.OfType<TextBox>().ToList();
int current = -1;
using (var con = new MySqlConnection(Properties.Settings.Default.ConnectionString))
{
    using (var cmd = new MySqlCommand("SELECT ColumnName FROM dbo.TableName", con))
    {
        con.Open();
        using (var rd = cmd.ExecuteReader())
        {
            while (rd.Read() && ++current < allTextBoxes.Count)
            {
                allTextBoxes[current].Text = rd.GetString(0);
            }
        }
    }
}

this.Controls 替换为包含所有TextBoxes 的容器控件。

【讨论】:

  • 我试过 .GetString() 但它只检索第一行,所有文本框都将具有来自第一行的值,而不是来自各自行的值。我将如何检索第二行?
  • @AfricaKen:请注意,我编辑了我的答案 current = -1 而不是 current = 0Controls.OfType&lt;TextBox&gt;().ToList() 中有多少个 TextBox?
  • 数据库有8行,8个文本框。
  • @AfricaKen 你要么选择Array TextBoxes,要么选择这个想法。
  • @AfricaKen:同样,Controls.OfType&lt;TextBox&gt;().ToList() 中有多少个文本框?也许它们在不同的容器控件中(例如Panel),然后使用它。上面的代码循环直到所有可用的文本框都被填满或所有记录都被读取。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
相关资源
最近更新 更多