将行从C#中的dataGridView导出到文本文件只导出第一行
本文关键字:一行 文件 中的 dataGridView 文本 | 更新日期: 2023-09-27 18:03:48
我想将行导出到文本文件中。不是所有行,而是仅在单击导出按钮时在dataGridView
中选中的行。我的问题是我的程序只导出输入的第一行,而且只导出一次。当我在选中的条件下选中多行时,我在索引0的单元格中放置了一个复选框。这就是我的导出按钮包含的内容:
private void buttonExport_Click(object sender, EventArgs e)
{
System.IO.StreamWriter str = new System.IO.StreamWriter("fichier.txt");
dataa= dataset.Tables["Rech"];
str.WriteLine("NumRep " + " Description " + " DateRep " + " cout " + " Matricule " + " CodeRep " + " CodeTypeRep ");
for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
{
if (dataGridView1.Rows[i].Cells[0].Selected == true) // checkbox checked
{
str.WriteLine(dataa.Rows[i][0] + " " + dataa.Rows[i][1] + " " +dataa.Rows[i][2]
+ " " +dataa.Rows[i][3] + " " + dataa.Rows[i][4] + dataa.Rows[i][5] + " " + dataa.Rows[i][6]);
}
}
str.Close();
}
我不知道我的逻辑哪里出了问题。
尝试更改此项:
if (dataGridView1.Rows[i].Cells[0].Selected == true) // checkbox checked
{
...
}
到此:
DataGridViewCheckBoxCell chkCell = dataGridView1.Rows[i].Cells[0] as DataGridViewCheckBoxCell;
if (chkCell.Value.Equals(chkCell.TrueValue)) // checkbox checked
{
...
}
DataRow row DataGridView1.Row[i]
DataGridViewCheckBoxCell chk = row.Cells[0] as DataGridViewCheckBoxCell;
if (Convert.ToBoolean(chk.Value) == true)
您可以尝试以上操作,从DataGridView中获取所需内容。它对我有效。
祝你好运!
我已经将我的条件更改为:
if ((bool)dataGridView1.Rows[i].Cells[0].Value == true)
它对我有效。
感谢大家!!