请编写一个小程序,使用foreach遍历一个DataTable,DataTable中有姓名、年龄、性别等字段,删除年龄小于18岁且性别为男性的记录。
public void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
。。。。。
this.dataGridView1.DataSource = dt;
}
public void button1_Click(object sender, EventArgs e)
{
Hashtable ht = new Hashtable();
foreach (DataRow r in dt.Rows)
{
if (Convert.ToInt32(r["age"]) < 18 && r["sex"].ToString().ToLower() == "male")
ht.Add(r["Id"], r["Name"]);
}
foreach (DictionaryEntry a in ht)
{
DataRow row = dt.Rows.Find(a.Key);
if (row != null)
dt.Rows.Remove(row);
}
}
用按钮的形式做~按钮这边怎么读取上面的datagridview的数据?
编写一个程序,使用foreach遍历DataTable
答案:2 悬赏:80
解决时间 2021-02-16 13:06
- 提问者网友:无依无靠的距离
- 2021-02-16 03:28
最佳答案
- 二级知识专家网友:说多了都是废话
- 2021-02-16 03:40
datarow[] datarow = DataTable.Select("age < 18 and sex = 'male'")
全部回答
- 1楼网友:强势废物
- 2021-02-16 04:04
错误提示"集合已修改"已经很明确的说明原因了啊~
因为foreach正在遍历dt,而这个时候你又删掉一行,此时dt就要刷新,foreach就无法获取dt的最新值了...
所以,你要删除只能先保存删除行的值...当跳出foreach后再一起删除.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯