簡體   English   中英

C#MySQL多行結果到comboBoxes

[英]C# MySQL multiline result to comboBoxes

我有5個comboBoxes,5個文本框和5個numericUpDowns,它們需要填充多行查詢的數據。

查詢的結果是:

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);                        
    }
}

但是,如果我這樣做了,所有的comboBoxes,textBoxes和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"]));                        
}

[edit]您可能需要“ .ToString()”-例如。 row [“ clave”]。ToString()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM