vs.net2005中的SqlDataSource小問題

guan19801026 2006-08-25 02:58:51
如果我用了SqlDataSource,不知道它連接過後會不會自動斷開連接。
如果它一直連接,那會很耗費資源。

不知道大家在寫2005項目的時候都用啥的。
還是DataSet,還是SqlDataSource,或者ObjectDataSource

在2005裡面這3個各有什麼優缺點?
...全文
220 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
greennetboy 2006-08-25
  • 打赏
  • 举报
回复
SqlDataSource 数据源控件用于表示绑定到数据绑定控件的 SQL 关系数据库中的数据。将 SqlDataSource 控件与数据绑定控件一起使用,可以从关系数据库中检索数据,还可以在网页上显示、编辑和排序数据,而不必编写代码或只需编写少量代码。

若要连接到数据库,必须将 ConnectionString 属性设置为有效的连接字符串。SqlDataSource 可以支持能够使用 ADO.NET 提供程序(例如 SqlClient、OleDb、Odbc 或 OracleClient)连接到的任何 SQL 关系数据库。有关保护连接字符串的信息,请参见 如何:确保使用数据源控件时连接字符串的安全。

若要从基础数据库中检索数据,请用 SQL 查询来设置 SelectCommand 属性。如果与 SqlDataSource 相关联的数据库支持存储过程,可以将 SelectCommand 属性设置为存储过程的名称。指定的 SQL 查询还可以是参数化的查询。可以将与参数化查询相关联的 Parameter 对象添加到 SelectParameters 集合中。有关参数化 SQL 查询及其语法的更多信息,请参见 对数据源控件使用参数。

每当调用 Select 方法时,SqlDataSource 控件都会检索数据。此方法提供对 SelectMethod 属性所指定的方法的编程访问。当调用绑定到 SqlDataSource 的控件的 DataBind 方法时,这些控件会自动调用 Select 方法。如果设置数据绑定控件的 DataSourceID 属性,则该控件会根据需要自动绑定到数据源中的数据。建议通过设置 DataSourceID 属性将 ObjectDataSource 控件绑定到数据绑定控件。或者,也可以使用 DataSource 属性,但必须显式调用数据绑定控件的 DataBind 方法。以下是几个可使用 SqlDataSource 的数据绑定控件的示例:DataGrid、DetailsView、DataList 和 DropDownList。您可以随时以编程方式调用 Select 方法来从基础数据库中检索数据。

在声明性和编程 ASP.NET 方案中,可以将数据绑定控件的 DataSourceID 属性设置为 SqlDataSource 的 ID。还可以将 SqlDataSource 类的实例分配给数据绑定控件的 DataSource 属性。有关将数据绑定控件绑定到数据源控件的更多信息,请参见 ASP.NET 数据访问概述。

您可以执行一些数据操作,例如更新、插入和删除,具体取决于基础数据库产品的功能以及 SqlDataSource 类的实例的配置。若要执行这些数据操作,请设置要执行的操作的相应命令文本以及所有相关参数。例如,对于更新操作,请将 UpdateCommand 属性设置为一个 SQL 字符串或一个存储过程的名称,并将所有必需的参数添加到 UpdateParameters 集合中。无论是由代码显式调用还是由数据绑定控件自动调用,调用 Update 方法时,都会执行更新操作。对于 Delete 和 Insert 操作也遵循这种常规模式。

在 SelectCommand、UpdateCommand、InsertCommand 和 DeleteCommand 属性中使用的 SQL 查询和命令可参数化。这意味着查询或命令可以使用占位符,而不必使用文本值,并且可以将占位符绑定到应用程序或用户定义的变量。您可以将 SQL 查询中的参数绑定到 Session 变量、通过 Web 窗体页的查询字符串传递的值以及其他服务器控件的属性值等。有关如何在对 SqlDataSource 的 SQL 查询中使用参数的更多信息,请参见 对数据源控件使用参数、对 SqlDataSource 控件使用参数 和 对 SqlDataSource 控件使用参数。

默认情况下,SqlDataSource 控件与用于 SQL Server 的 .NET Framework 数据提供程序一起使用,但 SqlDataSource 不是特定于 Microsoft SQL Server 的。对于任何一个数据库产品,只要有适用的托管 ADO.NET 提供程序,您都可以将 SqlDataSource 控件与它连接。与 System.Data.OleDb 提供程序一起使用时,SqlDataSource 可以与任何符合 OLE DB 的数据库协同使用。与 System.Data.Odbc 提供程序一起使用时,SqlDataSource 可与任何 ODBC 驱动程序和数据库协同使用,其中包括 IBM DB2、MySQL 和 PostgreSQL。与 System.Data.OracleClient 提供程序一起使用时,SqlDataSource 可以与 Oracle 8.1.7 以及更高版本的数据库协同使用。允许使用的提供程序的列表记录在配置文件(Machine.config 或 Web.config 文件)的 DbProviderFactories 节中。有关更多信息,请参见 使用 SqlDataSource 控件选择数据。

如果使用 SqlDataSource 在页上显示数据,可以使用数据源控件的数据缓存功能提高该页的性能。使用缓存可以减少数据库服务器上的处理量,但是要占用 Web 服务器上的内存;大多数情况下,这种代价是值得的。当 EnableCaching 属性设置为 true 且 CacheDuration 属性设置为某一秒数(该秒数是在放弃缓存项之前,缓存存储数据的时间)时,SqlDataSource 将自动缓存数据。您还可以指定 CacheExpirationPolicy 和可选的 SqlCacheDependency 值。

wshuangminlg 2006-08-25
  • 打赏
  • 举报
回复
帮LZ顶了 LZ加油
guan19801026 2006-08-25
  • 打赏
  • 举报
回复
各位大哥大姐~~~~可憐一下小弟
誰來說說,討論一下~~~~~
頂一下
guan19801026 2006-08-25
  • 打赏
  • 举报
回复
沒人理啊~~~真可憐壓
acupoflife1 2006-08-25
  • 打赏
  • 举报
回复
。。。。。。。。。。。。。。。。。。。。
acupoflife1 2006-08-25
  • 打赏
  • 举报
回复
ding
acupoflife1 2006-08-25
  • 打赏
  • 举报
回复
快來幫忙啊,,,,,help,help
guan19801026 2006-08-25
  • 打赏
  • 举报
回复
各位大哥大姐~~~~可憐一下小弟
誰來說說,討論一下~~~~~
頂一下
hclred 2006-08-25
  • 打赏
  • 举报
回复
UP UP


觀注

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧