更具体的问题:Export DataBase (.mdb / .accdb) to .csv
我是数据网格的新手,需要导出标记(选中)的特定行。
我无法找到一种简单的方法来仅导出所选字段。
现在代码没有选择:
StringBuilder sb = new StringBuilder();
IEnumerable<string> columnNames = DataSet_DB.Tables[0].Columns.Cast<DataColumn>().
sb.AppendLine(string.Join(";", columnNames));
foreach (DataRow row in DataSet_DB.Tables[0].Columns)
{
IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
sb.AppendLine(string.Join(";", fields));
}
File.WriteAllText(SFD.FileName, sb.ToString());
答案 0 :(得分:1)
您可以使用DataGridView.SelectedRows集合获取所选行。如果您的DataGridView只允许选择一个,请查看我的样本。
DataGridView.SelectedRows获取由...选择的行的集合 用户。
样品
if (dataGridView1.SelectedRows.Count != 0)
{
DataGridViewRow row = this.dataGridView1.SelectedRows[0];
row.Cells["ColumnName"].Value
}
更多信息:
答案 1 :(得分:0)
在将所需属性SelectionMode设置为FullRowSelect后,您应该遍历DataGrid1.SelectedRows属性。然后每个网格行都有一个名为DataBoundItem的属性,该属性引用用于填充行的对象 在您的情况下,此对象似乎是一个DataTable,因此您可以返回DataRow,首先将DataBoundItem转换为DataRowView,然后从那里获取DataRow。
foreach (DataGridViewRow gridrow in dataGrid1.SelectedRows)
{
DataRow row = ((gridrow.DataBoundItem) as DataRowView).Row
IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
sb.AppendLine(string.Join(";", fields));
}