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