C# MySQL 多行结果到组合框

标签 c# mysql foreach

我有 5 个组合框、5 个文本框和 5 个 numericUpDown,我需要用多行查询的数据填充它们。

查询结果为:

clave   descr                             canti
ABR002  ABRAZADERA DE RIEL UNICANAL 1"      1
ABR003  ABRAZADERA DE RIEL UNICANAL 1/2"    2
ABR004  ABRAZADERA DE RIEL UNICANAL 3/4"    3
ABR005  ABRAZADERA PARA TUBING 18 CM        4
ABR006  ABRAZADERA DE RIEL UNICANAL 2 1/2"  5

我用于从查询行检索数据的代码是:

try
{
    MySqlCommand cmdc = new MySqlCommand("select clave, descr, canti from notaspd where folio = '" + comboBox6.Text + "';", conn);
    MySqlDataAdapter dataadapc = new MySqlDataAdapter(cmdc);
    System.Data.DataTable datatabc = new System.Data.DataTable();
    dataadapc.Fill(datatabc);

    foreach (DataRow row in datatabc.Rows)
    {
        rows = string.Format("{0}", row.ItemArray[0]);
        comboBox1.Text = rows;
        rows = string.Format("{0}", row.ItemArray[1]);
        textBox3.Text = rows;
        rows = string.Format("{0}", row.ItemArray[2]);
        numericUpDown1.Value = Convert.ToDecimal(rows);                        
    }
}

但是如果我这样做,所有的组合框、文本框和 nUD 都会填充最后一行,给我类似的内容:

ABR006  ABRAZADERA DE RIEL UNICANAL 2 1/2"  5
ABR006  ABRAZADERA DE RIEL UNICANAL 2 1/2"  5
ABR006  ABRAZADERA DE RIEL UNICANAL 2 1/2"  5
ABR006  ABRAZADERA DE RIEL UNICANAL 2 1/2"  5
ABR006  ABRAZADERA DE RIEL UNICANAL 2 1/2"  5

我理解这是因为 foreach 循环一直到最后一个结果并覆盖了最后一个结果。如何修改 foreach 使其仅返回 n 行结果?

我希望我已经说清楚了。

最佳答案

现在已经很晚了,如果我遗漏了什么,请原谅我!

您将每个单独的单元格存储在单独的控件中,那么为什么不直接访问 DataTable 中的每个单元格并设置适当的控件呢?

comboBox1.Text = Convert.ToString(datatabc.Rows[0][0]);
...
comboBox5.Text = Convert.ToString(datatabc.Rows[4][0]);

textBox1.Text = Convert.ToString(datatabc.Rows[0][1]);
...
textBox5.Text = Convert.ToString(datatabc.Rows[4][1]);

numericUpDown1.Value = Convert.ToDecimal(datatabc.Rows[0][2]);
...
numericUpDown5.Value = Convert.ToDecimal(datatabc.Rows[4][2]);

我只是看不出在这里使用 foreach 循环的原因。

关于C# MySQL 多行结果到组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21247646/

相关文章:

c# - 事件处理器执行顺序

c# - 使用索引选择 List<string> 到 Dictionary

mysql - 将多列结果插入单列表

javascript - 将用户输入永久发布到网页

php - 将两个不同的查询合并为一个合并的 foreach

c# - 构建时将库项目复制到子文件夹而不是根目录

c# - 在循环中使用 Task.Factory.StartNew

mysql - 使用哪种字符编码

powershell - 如何在 ScriptBlock 中传递 $_ ($PSItem)