Clear()或Dispose()清除分配给C#中新数据集()的数据集?

时间:2013-10-15 14:17:23

标签: c# sql dataset compact-framework windows-mobile-6.5

我应该使用什么来清除我在C#代码(Windows Mobile Compact Framework)中每次新SQL调用时分配给new Dataset()的DataSet?

目前我正在使用Clear(),但我不确定是否应该使用Dispose。什么是适当的选择?

一些代码:

在frmA内部(我执行数据库SQL搜索的主要表单)我将搜索结果保存到数据库中,如果count大于0,我会转到另一种形式frmNewWork来处理找到的数据:< / p>

// search SQL
// declare connectionString and command... 
SqlCeDataAdapter adapter = new SqlCeDataAdapter(mCommand);
modFunctions.tempDataset = new NEWDataSet();
adapter.Fill(modFunctions.tempDataset, "item");
foundCount = modFunctions.tempDataset.item.Count;

// Goes off to another form to do somework with that dataset
if (foundCount > 0)
{
    frmNewWork myForm = new frmNewWork();
    myForm.ShowDialog()
}

现在......一旦我从myForm返回,我想清除该数据库,并在A GotFocus函数内部执行此操作:

private void frmA_GotFocus(object sender, EventArgs e)
{
    // Clear prior tempDataset (was .Clear() originally)
    modFunctions.tempDataset.Dispose();
}

2 个答案:

答案 0 :(得分:3)

像这样编写代码..

using(DataSet ds= new Dataset()
{
}

无需担心处置。

您还可以查看此链接。     http://www.csharptuts.net/dataset-in-c/

答案 1 :(得分:2)

两点

1)如果要在使用ShowDialog()方法显示的其他表单后清除数据集。您可以在myForm.ShowDialog();声明之后立即执行此操作。

2)如果ASTSDataSet未受管理,请调用Dispose。否则不要做任何事情,GC会照顾。