簡體   English   中英

c#dataGridView for循環添加數據

[英]c# dataGridView for loop to add data

使用for循環生成數字,1-100,並將每個數字添加到dataGridView

在我嘗試使用我的代碼后,我只顯示了一行,也就是最后 100 行。

public void aaa(int i) {
    DataTable dt = new DataTable();
    dt.Columns.Add("host");

    DataRow dr = dt.NewRow();
    for (int a = 1; a <= i; a++)
    {
        dr[a] = i;
    }
    dt.Rows.Add(dr);

    this.dataGridView1.DataSource = dt;
}

private void button1_Click(object sender, EventArgs e) {
    for (int i = 1; i <= 254; i++)
    {
        aaa(i);
    }       
}

你的btn_click功能。 每個循環都會在aaa(i)函數內初始化或創建一個新對象

每次在 for 循環中調用aaa(i)都會調用DataTable dt = new DataTable()

public void aaa(int i)
{
    DataTable dt = new DataTable(); ///this will initialize every time, a new data table will be created every loop
    dt.Columns.Add("host");

    DataRow dr = dt.NewRow();
    for (int a = 1; a <= i; a++)
    {
        dr[a] = i;
    }
        dt.Rows.Add(dr);

    this.dataGridView1.DataSource = dt;
}

}

我是否建議您在aaa(i)函數中傳遞254 int 並在內部執行循環

private void button1_Click(object sender, EventArgs e)
{
   aaa(254);
}


public void aaa(int i) //value of i = 254
{
        DataTable dt = new DataTable();
        DataRow dr = dt.NewRow();
        for (var s = 0; s <= i; s++ ) {
            for (int a = 1; a <= i; a++)
            {
                dr[a] = i;
            }
                dt.Rows.Add(dr);

            this.dataGridView1.DataSource = dt;
        }
    }
}

或者,如果按鈕中循環的原因只是因為 void aaa內循環中的數量限制,那么您可以將其簡化為

public void aaa(int i) //value of i = 254
{
    DataTable dt = new DataTable();
    DataRow dr = dt.NewRow();
    for (int a = 1; a <= i; a++)
    {
        dr[a] = i;
    }
    dt.Rows.Add(dr);

    this.dataGridView1.DataSource = dt;
}

}

我自己想到了可用的解決方案。

DataTable dt = new DataTable(); 
dt.Columns.Add("number"); 
int i = 10; 
int a = 0; 
while (a<=i) 
{ 
    DataRow dr = dt.NewRow(); 
    a++; 
    dr[0] = a; 
    dt.Rows.Add(dr);
 } 
this.dataGridView1.DataSource = dt;

我總是那樣做

ListCollectionView collectionView;
collectionView = new ListCollectionView(*your list of items*);

datagridView1.ItemSource = collectionView;

像這樣實施為您提供了未來用於排序、過濾等的開放方式。 這里是 ms 文檔的鏈接 您可以在其中找到有關listCollectionView更多信息。

暫無
暫無

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

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