从C#中的dataGridView将行导出到文本文件仅导出第一行

时间:2014-05-15 18:57:41

标签: c# winforms ado.net

我想将行导出到文本文件。不是所有行,而是仅在我单击导出按钮时在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();
        }

我不知道我的逻辑问题在哪里。

3 个答案:

答案 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)

它对我有用。

感谢所有!!