我想将行导出到文本文件。不是所有行,而是仅在我单击导出按钮时在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();
}
我不知道我的逻辑问题在哪里。
答案 0 :(得分:2)
尝试更改此内容:
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
{
...
}
答案 1 :(得分:0)
DataRow row DataGridView1.Row[i]
DataGridViewCheckBoxCell chk = row.Cells[0] as DataGridViewCheckBoxCell;
if (Convert.ToBoolean(chk.Value) == true)
您可以尝试上面的方法来获取DataGridView所需的内容。它对我有用。
祝你好运!
答案 2 :(得分:0)
我改变了我的条件:
if ((bool)dataGridView1.Rows[i].Cells[0].Value == true)
它对我有用。
感谢所有!!