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

ASP.NET
如果操作EXCEL提示没有权限?
不让别人保存你的网页
从C#转到VB .net
创建虚拟目录的常用属性
visual studio 2005又一新增功能
Com与.Net互操作(二次业务开发及插件开发总结)
Wap页面使用asp.net中移动控件List分页(原创)
关于如何操作其他窗体的控件或变量的方法!
C#版MultiSelected DataGrid
使用非托管代码直接修改字符串
如何让一个函数返回多个值(C#)
(原创)C#编写的windows计算器----源代码
(原创)C#获取本地计算机名,IP,MAC地址
用C#读取sina天气预报到wap页面(一)(原创)
窗体问题--拖动无标题栏的窗体
写在VB.NET公共论坛的开篇语!
在VB6中动态创建使用ADO控件访问数据库
使用Visual Basic 6实现真正实用的多线程处理
设计模式之Facade:家庭篇
如何设置tabcontrol控件的tabPage的text内容显示成竖着的字体

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


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