我正在使用数据表将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)方法1
dt_CompanyNames.Clear();
2)方法2
dt_CompanyNames.Rows.Clear();
3)方法3
dt_CompanyNames.Reset();
4)或者我应该坚持我的现有方法吗?
dt_CompanyNames = new DataTable();
在此方法中,每次调用此函数时,它始终会创建新的Datatable
。好吗?
那么它们之间的区别是什么?在效率方面是否有一个比另一个好?
答案 0 :(得分:0)
new DataTable()
为引用的变量分配一个新对象,默认情况下,所有元数据都将从DataTable中删除。
DataTable.Clear()
删除所有表中的所有行。如果是,则生成异常 table具有任何会导致子行的强制子关系 孤儿。
如果DataSet绑定到XmlDataDocument,则调用DataSet.Clear 或DataTable.Clear引发NotSupportedException。为了避免这种情况 情况,遍历每个表,一次删除一行。什么时候 您使用NewRow创建新行,必须先处理行 你打电话给Clear。
来自答案HERE
DataTable.Clear()和Rows.Clear()都将删除所有行 数据表但不是列。它们都执行相同的功能,除了 一个在dataTable类中定义,第二个在 DataRowCollection类。