我应该使用什么来清除我在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();
}
答案 0 :(得分:3)
像这样编写代码..
using(DataSet ds= new Dataset()
{
}
无需担心处置。
您还可以查看此链接。 http://www.csharptuts.net/dataset-in-c/
答案 1 :(得分:2)
两点
1)如果要在使用ShowDialog()方法显示的其他表单后清除数据集。您可以在myForm.ShowDialog();
声明之后立即执行此操作。
2)如果ASTSDataSet
未受管理,请调用Dispose。否则不要做任何事情,GC会照顾。