for (int i = 0; i < dataGridView1.Rows.Count; i++) { if (dataGridView1.Rows[i].Selected == true) { dataInfo.ft_no = bxdh.Text = dataGridView1.Rows[i].Cells[0].Value.ToString(); dataInfo.login_no = yhbh.Text = dataGridView1.Rows[i].Cells[1].Value.ToString(); dataInfo.dev_no = xbbh.Text = dataGridView1.Rows[i].Cells[2].Value.ToString(); dataInfo.ftwhy = gzyy.Text = dataGridView1.Rows[i].Cells[3].Value.ToString(); dataInfo.ftstatus = gzztms.Text = dataGridView1.Rows[i].Cells[4].Value.ToString(); dataInfo.remark = bz.Text = dataGridView1.Rows[i].Cells[5].Value.ToString(); } }改写dpreach
时间: 2024-02-15 20:04:40 浏览: 33
可以这样改写:
```
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
dataInfo = new DeviceManage.故障管理();
dataInfo.ft_no = bxdh.Text = row.Cells[0].Value.ToString();
dataInfo.login_no = yhbh.Text = row.Cells[1].Value.ToString();
dataInfo.dev_no = xbbh.Text = row.Cells[2].Value.ToString();
dataInfo.ftwhy = gzyy.Text = row.Cells[3].Value.ToString();
dataInfo.ftstatus = gzztms.Text = row.Cells[4].Value.ToString();
dataInfo.remark = bz.Text = row.Cells[5].Value.ToString();
}
```
这样,遍历选中行的过程中,每次都会新创建一个 `dataInfo` 对象,并将选中行的对应值赋值给它。同时,使用 `foreach` 遍历选中行的集合,可以避免遍历所有行,提高效率。
相关问题
for (int i = 0; i < dataGridView1.Rows.Count; i++) 改成foreach
将 `for` 循环改为 `foreach` 循环,需要使用以下代码:
```csharp
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Selected == true)
{
if (isadmin == "1")
{
// 执行相关操作
}
}
}
```
`foreach` 循环可以更简洁地遍历集合中的元素,避免了使用索引变量 `i`,并且可以直接使用集合中的元素,而不需要通过索引访问。
Excel.Application excelApp = new Excel.Application();Excel.Workbook excelWorkbook = excelApp.Workbooks.Add();Excel.Worksheet excelWorksheet = excelWorkbook.ActiveSheet;for (int i = 1; i < dataGridView1.Columns.Count + 1; i++){ excelWorksheet.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;}for (int i = 0; i < dataGridView1.Rows.Count; i++){ for (int j = 0; j < dataGridView1.Columns.Count; j++) { excelWorksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); }}excelWorkbook.SaveAs("data.xlsx");excelApp.Quit();
这段代码是使用 C# 编程语言将 DataGridView 中的数据导出到 Excel 文件中,以下是代码的解释和注释:
```csharp
// 创建 Excel 应用程序对象
Excel.Application excelApp = new Excel.Application();
// 创建 Excel 工作簿对象
Excel.Workbook excelWorkbook = excelApp.Workbooks.Add();
// 获取当前工作表对象
Excel.Worksheet excelWorksheet = excelWorkbook.ActiveSheet;
// 循环遍历 DataGridView 的每一列,将列头作为 Excel 表格的第一行
for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
{
excelWorksheet.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
}
// 循环遍历 DataGridView 的每一行,将每一行数据作为 Excel 表格的一行
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
// 将 DataGridView 单元格中的数据写入到 Excel 单元格中
excelWorksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
}
}
// 将 Excel 文件保存到指定路径
excelWorkbook.SaveAs("data.xlsx");
// 关闭 Excel 应用程序对象
excelApp.Quit();
```
希望这些注释能够帮助你更好地理解这段代码的含义。