如何使用 C# 清除数据网格视图中的行
本文关键字:视图 网格 数据网 何使用 清除 数据 | 更新日期: 2023-09-27 17:57:57
跟随此行中的错误。
datagridview1.Rows.Clear()
但是这一行给出了错误:
无法清除此列表。
当我尝试清除 DataGridView 的数据源时,我也遇到了类似的问题,因为我将它绑定到数据表:
DataTable DT = ... ; // fill it
datagridview1.DataSource = DT;
当我尝试稍后使用以下代码清除它的行时:
datagridview1.DataSource = null
我收到此错误:
ERROR: Object reference not set to an instance of an object
这个对象引用错误问题已经在这里解决了。但是我设法用这段代码解决了我自己的问题(清除 DataGridView 行(:
DataTable DT = (DataTable)datagridview1.DataSource;
if (DT != null)
DT.Clear();
我知道这个问题很久以前就被问过了,但我希望我的解决方案能解决某人的问题。
您的DataGridView
是否绑定到DataSource
,我认为这就是为什么它不允许您清除它,因为它绑定到底层DataTable
或List
。
您可以尝试将数据源属性设置为 null
清算datagridview1.DataSource = null;
private void button_Limpar_Click(object sender, EventArgs e)
{
DataTable DT = (DataTable)dataGridView_Cidade.DataSource;
if (DT != null)
DT.Clear();
}
#endregion
只需在活动开始时添加以下行:
dgv_nameOfGridView.DataSource=false;
现在每次单击它都会删除dgv。
您必须清除数据源而不是数据网格视图行。
datagridview1.DataSource = null;
另一种方式是
1( 不要将直接数据源分配给网格视图。将行从数据表添加到网格视图
foreach (DataRow row in dataTable.Rows)
{
var dataGridRow = new DataGridViewRow();
dataGridRow.CreateCells(datagridview1);
for (int i = 0; i < row.ItemArray.Length; i++)
{
dataGridRow.Cells[i].Value = row.ItemArray[i];
}
datagridview1.Rows.Add(dataGridRow);
}
然后使用
datagridview1.Rows.Clear()
您可以使用以下简单方法:
首先清除数据表,然后刷新数据网格视图
dataTable.Clear();
dataGridView.Refresh();
希望这个帮助
简单的解决方案是清除数据集。DS.清除((;
由于您使用的是绑定网格,您是否尝试过调用加载 功能两次并验证数据没有加倍?
由于它是绑定的,因此加载两次应该不会复制数据。
http://www.vbforums.com/showpost.php?s=aa5f116586c00a2d9ea15e3727fc5c2f&p=2841192&postcount=9
首先清除数据源,然后清除 DataGridView
在 VB 中
datagridview1.DataSource = Nothing
datagridview1.Rows.Clear()
希望有所帮助
如果使用参数加载 DataGridView,则可以向其发送空参数。这将清除 DataGridView,而不必将其数据集设置为 null。
例如,当我填充文本框时,我用代码加载我的 DataGridView。
this.dataTable1TableAdapter.Fill(this.ds_MyDataSet.DataTable1, TextBox1.Text);
如果我想清除其内容,那么
this.dataTable1TableAdapter.Fill(this.ds_MyDataSet.DataTable1, "");
8年后的今天。
虽然
datagridview1.DataSource = null;
对于大多数人来说是一个令人满意的答案,对我来说,这删除了我在设计视图中添加到列中的所有自定义项。因此,如果我想清除行,就会出现隐藏列。
因此,与其清除行:
datagridview1.Rows.Clear()
清除用于设置 DataGridView 的数据表或数据视图。请注意,您不必检查某些内容是否为 null,也不必担心 Object 未设置为引用错误。
所以这是我做我的:
//Populate the datagridview
DataTable _DT = new DataTable();
BindingSource _BS = new BindingSource();
//Initially fill up your datatable with stuff
//You can call this method again if data needed to be changed
public void fillDT(int id) {
_DT = fillUpDataTableWithStuffFromDB(id);
_BS.DataSource = _DT.DefaultView;
datagridview1.DataSource = _BS;
_BS.ResetBindings(false);
}
//You can use this method to mimic the functionality above
//But rather fetching data, just clear out the datatable and pass it in
public void clearDT() {
_DT.Clear();
datagridview1.DataSource = _DT.DefaultView;
datagridview1.Refresh();
}
正如你在上面看到的,我刚刚清除了数据表,并将其传递到数据网格中。这保留了我在数据网格视图列上设置的所有属性。
foreach (DataGridViewRow item in this.datagridview.Rows)
{
datagridview.Rows.RemoveAt(item.Index);
}
我遇到了同样的问题,我尝试了许多解决方案。
最后,我意识到,如果我们使用它的属性"DGV",我们就无法清除 DataGridView。数据源",因为 DGV 从数据集中获取其数据,因此您需要清除数据表行
Dataset.Tables["TableName"].Rows.Clear();
如果您在表单加载中使用此功能,则需要添加条件
if (DataSet.Tables["TableName"] !=null)
Dataset.Tables["TableName"].Rows.Clear();
否则你会得到这个错误
对象引用未设置为对象的实例。