C# C MySQL多行结果到组合框

C# C MySQL多行结果到组合框,c#,mysql,foreach,C#,Mysql,Foreach,我有5个组合框、5个文本框和5个数字下拉列表,需要用多行查询的数据填充它们 查询结果为: 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

我有5个组合框、5个文本框和5个数字下拉列表,需要用多行查询的数据填充它们

查询结果为:

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循环的理由。

你能试试这个吗

foreach (DataRow row in datatabc.Rows)
{
   comboBox1.Text = string.Format("{0}", row["clave"]);
   textBox3.Text =  string.Format("{0}", row["descr"]);
   numericUpDown1.Value = Convert.ToDecimal(string.Format("{0}", row["canti"]));                        
}
[编辑] 您可能需要.ToString-ex.row[clave].ToString