我想从 Grid 值的 DataGridView 中获取一个 DataTable。
换句话说,DataTable 与 DataGridView 值相同
我想从 Grid 值的 DataGridView 中获取一个 DataTable。
换句话说,DataTable 与 DataGridView 值相同
可能是一种更好的方法,但否则仅循环通过 DGV 并手动创建 DataTable 将是相当简单的。
像这样的东西可能会起作用:
DataTable dt = new DataTable();
foreach(DataGridViewColumn col in dgv.Columns)
{
dt.Columns.Add(col.Name);
}
foreach(DataGridViewRow row in dgv.Rows)
{
DataRow dRow = dt.NewRow();
foreach(DataGridViewCell cell in row.Cells)
{
dRow[cell.ColumnIndex] = cell.Value;
}
dt.Rows.Add(dRow);
}
您可以将 DataSource 对象从 DataGridView 转换为 DataTable
DataTable dt = new DataTable();
dt = (DataTable)dataGridView1.DataSource;
您也可以使用以下代码,当您在数据表中添加或删除行时,此代码填充不会影响您的 DataGridView
DataTable dt = new DataTable();
dt = Ctype(dataGridView1.DataSource,DataTable).copy();
您可以尝试如下:
using System.Data;
using System.Windows.Forms;
namespace BLL
{
public class Class_DataGridview_To_DataTable
{
public static DataTable UDF_Convert_DataGridView_To_Datatable(DataGridView ImpGrd)
{
DataTable ExportDataTable = new DataTable();
foreach (DataGridViewColumn col in ImpGrd.Columns)
{
ExportDataTable.Columns.Add(col.Name);
}
foreach (DataGridViewRow row in ImpGrd.Rows)
{
DataRow dRow = ExportDataTable.NewRow();
foreach (DataGridViewCell cell in row.Cells)
{
dRow[cell.ColumnIndex] = cell.Value;
}
ExportDataTable.Rows.Add(dRow);
}
return ExportDataTable;
}
}
}