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

ASP.NET
使用函数传递参数来执行相应的数据库操作
如何实现在窗体和窗体之间进行传递数据
ASP.NET中文显示之两种解决方法
ASP.NET、JSP及PHP之间的抉择
ASP.NET 2.0发送电子邮件中存在的问题
谈谈HtmlControl与WebControl的区别与用途
从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
通过系统配置来提高ASP.NET应用程序的稳定性
妙用ASP2.0中的URL映射改变网址
AJAX实现web页面中级联菜单的设计
ASP.NET跨页面传值技巧总结
再议ASP.NET DataGrid控件中的“添加新行”功能
Geometry 对象浅析
重构CollapsibleSplitter
如何利用.NET Framework使用RSS feed
ASP.NET获取IP与MAC地址的方法
在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET中为GridView添加删除提示框
ASP.NET 2.0,无刷新页面新境界
看看一个.net版对话框控件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 51 ::
收藏到网摘: 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的服务器端数据访问全部讲完。从后面的章节开始,讲解数据访问和用户订制。敬请期待...