为了账号安全,请及时绑定邮箱和手机立即绑定

c# dataGridView for 循环添加数据

c# dataGridView for 循环添加数据

C#
一只萌萌小番薯 2023-08-13 15:34:04
使用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);    }       }
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

你的btn_click职能。aaa(i)每个循环都会在函数内初始化或创建一个新对象


每次aaa(i)在for循环中调用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;

}

}


254我是否可以建议您在函数中传递intaaa(i)并在内部执行循环,例如


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;

}

}


查看完整回答
反对 回复 2023-08-13
?
浮云间

TA贡献1829条经验 获得超4个赞

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

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;


查看完整回答
反对 回复 2023-08-13
?
翻阅古今

TA贡献1780条经验 获得超5个赞

我总是这样做


ListCollectionView collectionView;

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


datagridView1.ItemSource = collectionView;

这样的实现为您提供了未来开放的排序、过滤等方式。



查看完整回答
反对 回复 2023-08-13
  • 3 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信