问题描述
|
我正在使用GridView,并且想知道是否最好在关闭后立即关闭连接
adapter.Fill(ds);
声明,否则我应该等到完成以下操作:
GridView.DataSource = ds;
GridView.DataBind();
我假设一旦数据集被填充,我就不再需要连接。我错了吗?
解决方法
调用“ 2”时,数据已加载到内存中,您可以在此语句后立即关闭连接。之后,将ds作为DataSource设置到gridview时,它将绑定来自内存的数据。
看一下这篇文章,以了解使用断开连接的数据-DataSet和SqlDataAdapter
, 呼叫
Fill()
之后,您可以安全地关闭连接。题外话:在处理IDisposable
(如SqlConnection
)实体时使用using
块进行练习,因此在这种情况下,您不必手动调用Close()
。
, 将数据填充到DataSet
中后,8ѭ不需要connection
,但是如果您在该行之后执行data manipulation
,则需要再次打开它,我要做的是我在finally
块中写入所有此类语句。
, DataSet
具有断开的体系结构,因此根本无需打开SqlConnection
。
DataSet是主要的数据存储
ADO.NET中的工具断开连接
建筑。与DataReader不同,
数据集未直接连接
通过连接到数据库
对象,当您填充它。代替,
从数据库中填充数据集
首先创建一个DataAdapter对象
(例如SqlDataAdapter)用于
提供者并将其与
SqlConnection对象。然后
SqlDataAdapter可以代理数据
通过发出a来检索DataSet
SqlCommand针对数据库
通过SqlConnection,检索
数据,并填充数据集
一个非常基本的用法示例是
string sSQL = \"SELECT * FROM Products\";
string sConnString =
\"Server=(local);Database=Northwind;Integrated Security=SSPI;\";
SqlDataAdapter oDa = new SqlDataAdapter();
DataSet oDs = new DataSet();
using(SqlConnection oCn = new SqlConnection(sConnString))
{
SqlCommand oSelCmd = new SqlCommand(sSQL,oCn);
oSelCmd.CommandType = CommandType.Text;
oDa.SelectCommand = oSelCmd;
oDa.Fill(oDs,\"Products\");
}
来源:对比ADO.NET DataReader和DataSet