我现在需要循环访问数据库,下面是具体的例子.请问,在这种情况下,是否需要显式的对dtTable进行垃圾回收?
while (true)
{
DataTable webCCTable = dbo.GetDataTableBySQL(selectSql);
if (webCCTable.Rows.Count > 0)
{
...........
}
}
while (true)
{
DataTable webCCTable = dbo.GetDataTableBySQL(selectSql);
if (webCCTable.Rows.Count > 0)
{
...........
}
}
解决方案 »
- 关于安装项目问题installer
- 控件的生命周期和页面的生命周期有何区别?
- FrmClosing事件里的问题
- 如何以编程的方式为Web(站点)项目(VS2005)添加引用
- 如果DataGrid控件中有相同的行,就把相同的行显示位相同的颜色
- 问下怎么让一个动作执行1秒 比如更改的图标要给用户看到1秒
- 请问水晶报表里面怎样打印图片,最好发实例?谢谢
- c# 我做记事本,不知道转到怎样写
- 哪位高人指点一下SMTP和POP3服务组件的开发思路呀,TKS
- webservices服务端的程序,运行在win2003,和win2000Avandceserver有什么区别么?(效率上面,稳定性方面)
- 求:C# winform如何处理注销登录
- 一个xml问题
while (true)
{
webCCTable = dbo.GetDataTableBySQL(selectSql);
if (webCCTable.Rows.Count > 0)
{
...........
}
}
有一个技术细节我还没有搞清楚,就是DataTable定义的变量在内存中是如何存放的?当多次向DataTable变量中赋值以后,DataTable变量中原来的值是否完全被覆盖了?因为我不清楚这个,所以在这个例子中,我将变量定义放在了循环内.谢谢!
正确地使用using是很不错的
但像楼主的代码,在循环里创建、然后又释放资源,对速度、内存是不是会有影响呢?
别说现在的硬件牛逼这点影响不用关心
如果不用关心,我想楼主也不会发帖问了
while (true)
{
webCCTable = dbo.GetDataTableBySQL(selectSql);
if (webCCTable.Rows.Count > 0)
{
...........
}
webCCTable = null;
} 让GC自动回收
while (true)
{
webCCTable = dbo.GetDataTableBySQL(selectSql);
if (webCCTable.Rows.Count > 0)
{
...........
}
webCCTable =null
}
谢谢各位的回帖!
但是using 关键字确实可以调用Dispose的。
如果内存属于正常,那跟垃圾回收没关系跟这里的DataTable没关系