分配一个新的DataTable, DataTable. clear (), DataTable. reset()和Dat
本文关键字:DataTable clear Dat reset 一个 分配 | 更新日期: 2023-09-27 18:15:43
我使用数据表将DataSource
绑定到GridView
。我是这样做的。
我如下声明了这个数据表。
private DataTable dt_CompanyNames;
然后private void get_CompanyNames()
{
dt_CompanyNames = new DataTable();
dt_CompanyNames = objDesignation_Bll.Get_CompanyNames();
gridCompanies.DataSource = dt_CompanyNames;
gridCompanies.DataBind();
}
所以我的问题是,如果我以以下方式做到这些呢?
首先我要做这个。
private DataTable dt_CompanyNames=new DataTable();
然后在我的方法中我使用这些语句。
方法1
dt_CompanyNames.Clear();
方法2
dt_CompanyNames.Rows.Clear();
方法3
dt_CompanyNames.Reset();
4)或者我应该坚持我现有的方法?
dt_CompanyNames = new DataTable();
在这个方法中,每次调用这个函数时总是创建新的Datatable
。好吗?
那么它们之间有什么区别呢?就效率而言,是否有一个比另一个更好?
new DataTable()
将一个新对象赋给引用的变量,默认情况下,所有元数据将从DataTable中删除。
DataTable.Clear()
按MSDN
删除所有表中的所有行。将生成异常表具有任何强制的子关系,这些关系将导致子行是孤儿。
如果数据集绑定到xmldataddocument,调用DataSet。清晰的或数据表。Clear会引发NotSupportedException异常。为了避免这种情况情况下,遍历每个表,每次删除一行。当使用NewRow创建新行时,必须先处理这些行
From a Answer HERE
DataTable.Clear()和rows . clear()都将删除数据表,但不是列。它们都具有相同的功能,除了其中一个定义在dataTable类中,第二个定义在DataRowCollection类。