C#数据库中的一个问题,关于DataSet什么时候被释放?

请问下面一段代码中,ds什么时候被释放掉了?
public static DataSet Query(string SQLString, params SqlParameter[] cmdParms)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, null, SQLString, cmdParms);
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
DataSet ds = new DataSet();
try
{
da.Fill(ds, "ds");
cmd.Parameters.Clear();
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
}

你没有理解到编程哈。using的目的是把括号里面的变量使用完后释放,其实不是真正的释放资源。
dataset每次都new了一下。已经创建了新的实例,开辟了新的内存。不是上一次的了。追问

非常感谢!

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-12
没有被释放,你可以加上ds.code();追问

好的。那么请问using (SqlConnection connection = new SqlConnection(connectionString))
这种释放的到底是什么东西。。。

C#中DataSet的释放问题
这种情况下,你最好在对 getDS 调用完成后,手动释放 getDS 的返回结果。否则,GC也会释放,但是,释放的时机,就很难确定了。对于支持 IDisposable 接口的对象,建议养成使用 using (...) 的习惯。

C#中DataSet的释放问题
私有变量是不需要Dispose的。过程结束后会自动清除垃圾

c# 做的C\/S程序,在占的内存资源如何释放掉?
朋友你问的很好,对于你提出的问题,我是这样想的。C# 内存管理是基于优化的收集方式,引入了代的机制(共分3代0、1、2),当0代充满时或内存紧张时,垃圾收集器会挂起当前线程自动收集0代没有被引用的新建的对象,1代充满时收集1代,2代充满时收集2代。见意最好不要手动进行GC的收集,这样会带...

c#中关于Dataset,datarow的数据访问问题
string x = row.ToString();这里调用的是DataRow.ToString,当然返回system.Data.DataRow,如果DataTable里只有一列,可以用string x = row[0].ToString();DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,...

请教有关C#winform中DataSet的问题
DataSet是.Net DAO的数据集,说白了就是内存中一块专门用来存储你读取到的数据的空间,所以只能从数据库操作,将操作的结果填充到DataSet中去。要实现你的那个功能,需要遍历DataSet的DataTable,例如 DataSet ds = GetDataSet();\/\/这里写你自己获取数据的代码 DataTable dt = ds.Tables[0];DataTable...

ASP.NET中的DataSet数据集所占用的内存什么时候会释放?
即便是某些类你显式的调用了垃圾回收,他也不会立即被从内存中清理出去。一般情况下垃圾回收器会很久才执行一次回收,也会在分配给某个进程或者线程的内存超出后自动执行。其他时候都不会随便执行垃圾回收的,因为这样做是很消耗系统资源的。对于DataSet这种大对象也会依照大对象的处理方法进行释放,不过请...

C# DataSet更新数据!
这样操作没必要把 dataset只是类似于容器 将数据取出来 暂时放到内存中 把绑定数据到dataset的代码写到一个方法中 然后在page_load中 第一次 加载的时候 调用这个方法 当你点击更新按钮的时候 执行update操作 然后呢 再次调用这个方法 数据库的数据重新读取出来就好了 protected void Page_Load(object...

c#中DataTable和DataSet什么区别,都是干什么用的,什么时候用
这样做的好处是什么?就是减少了数据库操作,客户端速度提高了,数据库压力减小了。DataSet可以比作一个内存中的数据库,DataTable是一个内存中的数据表,DataSet里可以存储多个DataTable c#自带的帮助就很好,多看多试就行,别让一楼那样的吓唬住,c#入门和学习都不难,小学五年级就可以学的。

一个关于C#的小问题!!希望大侠帮帮忙!!
SqlDataAdapter可以看作是一个卡车,DateSet可以看作是一个内存中的数据库,现在SqlDataAdapter接到一个cmd的指令,根据指令去服务器拿数据(sda.SelectCommand = cmd;),拿到了后就把数据一口气倒在本地的DataSet中(sda.Fill(ds)),这样就算中途与服务器断开,拿到的数据也还在自己电脑的内存中 没有指令“...

C#里的DataSet到底是干什么用的,怎么用?哪位高手帮我讲解讲解,谢谢啦...
1.DataSet 是DataTable的集合,通过dataSet1.Tables[index] 方式得到DataTable 2.DataSet 及DataTable均存在与内存 3.DataSet中的DataTable可以只有一个,也可以有多个,多个之间可以有关系也可以没有关系相互独立;4.DataTable可以通过dataSet1.Tables.Add加入到DataSet中,但此DataTable必须通过copy的方式...

相似回答