通过 ODP.NET 更新使用参考游标填充的数据集示例
目录
此示例程序的目的是演示如何通过 ODP.NET 更新使用参考游标填充的数据集中的数据。
参考游标是不能直接更新的,但是填充到数据集中的数据是可更新的。通过使用定制 SQL 语句,OracleDataAdapter 可以将任何参考游标更新写入数据库。
当运行此示例时,会显示一个包含两个数据表格控件的 web 表单。一个数据表格中填充的是产品数据库表中记录的 "orderable" 状态。另一个数据表格中填充的是产品数据库表中记录的 "under development" 状态。这两个数据表格使用从参考游标获取数据的产品数据集进行填充,而该参考游标由使用 OUT 参数的数据库存储过程返回。
用户可以把产品状态从 "under development" 更新为 "orderable",方法是选择 Under Development 产品的数据表格中的复选框并点击 "Update Status" 按钮。通过此事件,Under Development 产品的数据表格中被选中的数据行的产品状态被设置为 "orderable"。命令类型被设置为存储过程,以便执行 "ODPNet.UpdateStatus" 数据库存储过程。Product ID 和 Product Status 参数与 OracleCommand 对象绑定。OracleCommand 通过一个 OracleDataAdapter 执行,从而实现通过 ODP.NET 更新使用参考游标填充的数据集。
当运行此 ASP.NET 示例程序时,会向用户显示一个 web 浏览器中的 web 表单,如图 1.1 所示。
图 1.2:显示初始屏幕
用户可以在显示 "under development" 状态产品记录的数据表格中选择一个或多个复选框。通过点击 "Update Status" 按钮,被选记录的产品状态被更新,而被修改的记录会出现在显示 "orderable" 状态记录的数据表格中。如果不存在 "Under Development" 状态的记录,"Update Status" 将被禁止使用。用户可以点击 "Close Form" 按钮关闭此 web 表单。
-
Microsoft Internet Information Services (IIS) 5.0 或更新版本,安装在 Microsoft Windows 2000 环境(打了 Service Pack 2 或更新补丁)。
-
与 MS 开发环境 7.0 版 (MS Visual Studio .NET) 一起安装的 Visual Basic.NET,包括 MS .NET Framework 1.0 版
-
运行 SQL*Net TCP/IP 监听程序(可以在此下载)的 Oracle9i Database Enterprise Edition 或更新版
-
Oracle Data Provider for .NET (ODP.NET)(可以在此下载)。
-
任何 Web 浏览器,如 Internet Explorer 5.5 或更新版本
使用 Winzip 或命令行工具把 UpdRefCursor.zip 解压缩到您指定的目录,使用 <Extract_Dir> 来指代此目录。解压缩此 zip 文件后会产生 UpdRefCursor 目录。更多详细信息请参阅示例文件的说明部分。
以任意用户身份连接到您的数据库并在 SQL 提示符上运行位于<Extract_Dir>\UpdRefCursor\config目录的 DatabaseSetup.sql 脚本。
@<Extract_Dir>\UpdRefCursor\config\DatabaseSetup.sql
其中 <Extract_Dir> 是您解压缩此示例的目录。此脚本创建一个数据库用户 Oranet/Oranet 以及产品表和 ODPNet 数据库包。此脚本会提示输入 "SystemPassword" 和 "TNSName",根据您的数据库设置输入这两个值。
1. 确保数据库设置已经完成。
2. 为了从 IIS 发布您的工程,必须创建一个虚拟目录。虚拟目录是一个共享资源,它由一个别名识别,此别名代表服务器上的一个物理位置。按照下面给出的步骤为此示例创建一个虚拟目录:
- 进入开始菜单 -> 设置 -> 控制面板 -> 管理工具 -> 互联网服务管理器 -> Internet Information Services ->
<Host Name> ->默认网站。用鼠标右键点击默认网站并选择新建 -> 虚拟目录。
- 启动虚拟目录创建向导。
- 为 Web 虚拟目录取一个别名
UpdRefCursor。点击下一步。
- 输入位置
<Extract_Dir>\UpdRefCursor,使别名与此物理位置相关联。点击下一步。<Extract_Dir> 是您解压缩此示例程序的目录。
- 确保为这个虚拟目录设置了读、运行脚本访问许可。点击下一步。点击结束。
- 虚拟目录创建完毕。
3. 打开 Visual Studio.NET。要创建一个新的 web 工程,点击 File -> New -> Project -> Visual Basic Projects -> ASP.NET Web Application, 将工程位置映射到您的虚拟目录,
例如 http://<Server-Name>/UpdRefCursor/src/UpdRefCursor,其中
<Server-Name> 是符合您的 IIS 配置的主机名或 IP 地址
UpdRefCursor 是将要发布您的工程的目录。(在前面的步骤中创建)
/src/UpdRefCursor 是将要创建您的工程的目录。
点击 OK。
4. 要将此示例程序文件添加到您的工程,进入 File -> Add Existing 项。在文件对话框中从 <Extract_Dir>\UpdRefCursor\src\UpdRefCursor 选择此示例文件。选择 ConnectionParams.vb, Error.*, ProductForm.* 文件并将它们添加到您的工程。要查看添加的文件,进入 Solution Explorer 并点击图标栏上的 "Show All Files" 按钮。
5. 在 Solution Explorer 中,双击 on ConnectionParams.vb 文件以编辑它。按照数据库设置中的值来更改数据库连接参数,如 UserName、Password、TNSName。
6. 在 Solution Explorer 中选择 ProductForm.aspx。用鼠标右键点击 ProductForm.aspx 并从弹出菜单中选择 "Set As Start Page"。
6. 确保下列 .NET 组件引用已经被添加到您创建的工程中:
- System
- System.Data
- Oracle.DataAccess
- System.Web
- System.XML
- System.Drawing
要添加上面的 .NET 组件:
- 进入 Menu -> View -> Solution Explorer.
- 用鼠标右键点击您创建的工程,并选择 "Add Reference"。
- 从出现的列表中选择上面的 .NET 组件。
- 点击 "Select",然后点击 OK。
- 被选中的 .NET 组件被添加到工程。
7. 进入 Menu -> Build -> Build project UpdRefCursor 编译此示例。然后点击 Debug->Start Without Debugging 在 Visual Studio.NET 环境中运行此示例。或者在 web 浏览器中输入下面的 URL 手动运行此示例。 http://<Server-Name>/UpdRefCursor/src/UpdRefCursor/ProductForm.aspx
例如http://152.69.170.237/UpdRefCursor/src/UpdRefCursor/ProductForm.aspx
下面是 UpdRefCursor.zip 的目录结构。
| 目录 |
文件 |
说明
|
UpdRefCursor\doc\ |
Readme.html |
本文件 |
| otn.css |
Readme.html 应用的层叠样式表 |
UpdRefCursor\doc\images\ |
screen1.gif |
在 Readme.html 文件中使用的屏幕截图 |
UpdRefCursor\config |
DatabaseSetup.sql |
包含创建此示例所需的数据库对象的脚本 |
UpdRefCursor\src\UpdRefCursor\ |
ProductForm.aspx |
显示数据表格的 Web 表单 |
| Error.aspx |
处理错误的 Web 表单 |
| ConnectionParams.vb |
包含数据库连接参数 |
| ProductForm.aspx.vb |
包含显示和更新数据集的代码 |
| Error.aspx.vb |
与 error.aspx 对应的源文件 |
| *.resx |
.NET XML 资源模板 |
|