当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET立即上手教程(11)

ASP.NET
Asp.net利用JQuery弹出层加载数据代码
asp.net dataview做无限极分类的又一用法
asp.net ckeditor编辑器的使用方法
告别ADO.NET实现应用系统无缝切换的烦恼(总结篇)
asp.net 实现动态显示当前时间(不用javascript不考虑开销)
.net动态显示当前时间(客户端javascript)
asp.net 结合YUI 3.0小示例
asp.net 取消缓存相关问题说明
asp.net 计划任务管理程序实现,多线程任务加载
ASP.NET 跨页面传值方法
asp.net中url地址传送中文参数时的两种解决方案
Asp.net 菜单控件简洁版
asp.net jQuery Ajax用户登录功能的实现
asp.net SharpZipLib的压缩与解压问题
asp.net url重写后页面回传问题
asp.net与Discuz!NT整合集成实例教程
Discuz!NT 3与asp.net 整合的实例教程
测试控制台使用方法
.net 动态标题实现方法
asp.net *.ashx类型的文件使用说明

ASP.NET立即上手教程(11)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 65 ::
收藏到网摘: n/a

访问基于XML的数据

在本章的开始曾经提到,DataSet被设计为不依赖于实际的数据源而抽象数据。你可以通过将实例中的数据从SQL改为XML明白这一点。DataSet支持ReadXml方法,它使用FileStream对象作为它的参数。这种情况下你读取的文件必须包含(XML)计划和要读取的数据。DataSet期望在form中使用的数据,如下面所示:

以下为引用的内容:
<DocumentElement>
  <TableName>
    <ColumnName1>column value</ColumnName1>
    <ColumnName2>column value</ColumnName2>
    <ColumnName3>column value</ColumnName3>
    <ColumnName4>column value</ColumnName4>
  </TableName>
  <TableName>
    <ColumnName1>column value</ColumnName1>
    <ColumnName2>column value</ColumnName2>
    <ColumnName3>column value</ColumnName3>
    <ColumnName4>column value</ColumnName4>
  </TableName>
</DocumentElement>

每个TableName段对应表中的一行/一条记录。下面的例子使用DataSet的ReadXml方法从XML文件读取计划和数据。注意:当数据读入DataSet后,使用起来就与SQL数据没有区别--- DataGrid就像绑定SQL数据一样绑定它,就象下面的例子:

也可以使用DataSet的ReadXmlData和ReadXmlSchema方法分别读取计划和数据,就象下面的例子。

DataSet除了支持读取XML数据的方法外,也支持写入XML数据。下面的例子实现了一个工具,用来查询SQL数据,将结果写为XML数据或者计划文本。

本章小结

通用语言运行时刻(CLR)管理数据访问的应用程序接口以一种一致的方式来提取和表示数据,而不依赖于实际的数据源,如SQL Server、OLEDB、XML等等。

为了让ASP.NET页面能够访问SQL数据库,必须在页面中引入System.Data和System.Data.SqlClient名称空间。如果访问OLEDB数据库,需要引入System.Data和System.Data.OleDb名称空间。

从SQL查询组装数据集(dataset),包括建立连接(SqlConnection),关联包含查询语句的SqlDataAdapter对象,然后用SqlDataAdapter的fill方法填充数据集(dataset)几个步骤。

DataGrid控件支持DataSource属性,该属性使用Ienumerable或Icollection类型。你可以通过给DataSet的 DefaultView属性(类型为DataView)赋值,将这些类型设置为SQL查询的结果。

SqlDataAdapter包含参数集合,可以将值替换为变量标志符 (名字前加一个"@")。

当执行不返回结果的SQL命令,例如插入、更新和删除,可以用SqlCommand代替SqlDataAdapter。通过调用ExecuteNonQuery(返回起作用的记录的数)方法来执行命令。

使用SqlCommand的时候,必须明确的打开SqlConnection(SqlDataAdapter自动处理打开连接)。页面执行完毕之前,记得一定要关闭SqlConnection。否则,会在垃圾回收功能处理页面实例的时候,不知不觉耗尽连接限制。

为了允许记录被编辑,DataGrid支持一个整数类型的EditItemIndex属性,它可以指出表格中的哪一行被编辑。设置了该属性之后,DataGrid将该行内容用输入框(即可以编辑)来代替文本标签显示。

DataGrid提供DataKeyField属性,能够为主键设置字段名。在UpdateCommand绑定的事件处理中,你可以从DataGrid的数据键集合取得主键的名称。

使用DataGrid 中的BoundColumn控件可以让你完全控制列的状态,包括ReadOnly属性。

使用DataGrid中的TemplateColumn控件可以让你完全控制列的内容

ButtonColumn(按钮列)可以用来在该列为每一行提供一个按钮控件,它可以关联事件。

HyperLinkColumn(超链接列)可以添加到DataGrid的列集合,当该链接被点击的时候,可以定向到其他页面。

当DataGrid的AllowSorting(允许排序)属性被设为true,它在列标题位置提供了超链接,用以激活Sort命令,并返回给表格。当用户点击这个(用来排序的)链接的时候,所调用的事件句柄可以在DataGrid的OnSortCommand属性中设定。

DataSet支持ReadXml、ReadXmlData和ReadXmlSchema方法,使用FileStream作为参数,它可以用来从XML文件组装DataSet。

使用存储过程可以减少应用程序中数据库的负荷。

由于这一部分的内容比较多,所以我们用三个章节,包括9、10、11,才将asp.net的服务器端数据访问全部讲完。从后面的章节开始,讲解数据访问和用户订制。敬请期待...