使用 Oracle Developer Tools For Visual Studio .NET 构建 .NET 应用程åº
使用 Oracle Developer Tools For Visual Studio .NET 构建 .NET 应用程åº
使用 Oracle Developer Tools For Visual Studio .NET 构建 .NET 应用程åº
本教程æ述如何使用 Oracle Developer Tools For Visual Studio .NET 构建 .NET 应用程åºã€‚
大约 30 分钟
本教程包括下列主题:
å°†é¼ æ ‡ç½®äºŽæ¤å›¾æ ‡ä¸Šå¯ä»¥åŠ 载和查看本教程的所有å±å¹•æˆªå›¾ã€‚(è¦å‘Šï¼šå› 为æ¤æ“作会åŒæ—¶åŠ 载所有å±å¹•æˆªå›¾ï¼Œæ‰€ä»¥ç½‘速较慢时,å“应时间å¯èƒ½ä¼šæ¯”较长。)
注:æ¤å¤–,您还å¯ä»¥åœ¨ä¸‹åˆ—æ¥éª¤ä¸å°†é¼ æ ‡æ”¾åœ¨æ¯ä¸ªå•ç‹¬çš„å›¾æ ‡ä¸Šï¼Œä»Žè€Œä»…åŠ è½½å’ŒæŸ¥çœ‹ä¸Žè¯¥æ¥éª¤ç›¸å…³çš„å±å¹•æˆªå›¾ã€‚å¯ä»¥é€šè¿‡å•å‡»å„个å±å¹•æˆªå›¾æ¥å°†å…¶éšè—。
æ–°çš„ Oracle Developer Tools for Visual Studio .NET 是 Visual Studio .NET 的一个紧密集æˆçš„“æ’件â€ï¼Œå®ƒå°† Oracle æ•°æ®åº“的功能带给了 .NET å¼€å‘人员ï¼ç”±äºŽå®ƒå¯¹äºŽæ•°æ®åº“å¼€å‘人员æ¥è¯´å®Œå…¨ç›´è§‚,所以采用它åŽå¯ç«‹å³æå‡æ‚¨çš„生产效率。如果您刚接触 Oracle å¼€å‘,这将一个很好的入门途径ï¼
使用 Server Explorer æµè§ˆæ‚¨çš„ Oracle 模å¼ï¼Œä½¿ç”¨ä¼—多强大的设计工具和å‘导之一æ¥åˆ›å»ºå’Œæ”¹å˜æ¨¡å¼å¯¹è±¡ï¼Œä»¥åŠå°†æ¨¡å¼å¯¹è±¡æ‹–放到您的表å•ä¸Šä»¥è‡ªåŠ¨ç”Ÿæˆä»£ç 。
æ¤å¤–,还有 PL/SQL 编辑器ã€å³å¸ SQL 查询窗å£ä»¥åŠé›†æˆçš„上下文相关的è”机帮助,包括《Oracle SQL å’Œ PL/SQL 用户指å—》。借助 Oracle æ•°æ®çª—å£ï¼Œæ‚¨æ— 需离开 Visual Studio 环境å³å¯æ‰§è¡Œæ—¥å¸¸æ•°æ®åº“任务,如æ’入和更新 Oracle æ•°æ®æˆ–测试å˜å‚¨è¿‡ç¨‹ï¼
这些以åŠå…¶ä»–许多特性都大大æ高了开å‘人员的生产效率,并使得 Windows 上的 Oracle å¼€å‘易于å¦ä¹ ï¼
返回主题列表
开始本教程之å‰ï¼Œæ‚¨åº”该:
1. |
安装 Oracle æ•°æ®åº“ 10g 或更高版本。
|
2. |
安装 Oracle Developer Tools for Visual Studio .NET
|
3. |
安装 Visual Studio 2005
|
返回主题列表
开始创建应用程åºä¹‹å‰ï¼Œæ‚¨åº”打开 Visual Studio 并检查界é¢ã€‚执行以下æ¥éª¤ï¼š
1. |
选择 开始 > ç¨‹åº > Microsoft Visual Studio 2005> Microsoft Visual Studio 2005。
|
2. |
选择 View > Server Explorer。
|
3. |
Server Explorer é¢æ¿æ‰“开。å³é”®å•å‡» Data Connections 并选择 Add Connection...。
|
4. |
Add Connection 对è¯æ¡†æ‰“开。如果 Data Source 未设置为 Oracle Database Server (Oracle ODP.NET),则å•å‡» Change。
在 Change Data Source 对è¯æ¡†ä¸ï¼Œé€‰æ‹© Oracle Database Server 作为 Data Source,并选择 Oracle Data Provider for .NET 作为 Data Provider。å•å‡» OK。
|
5. |
输入数æ®æºå称。这是您è¦ä½¿ç”¨çš„ Oracle 实例的 SID。
在 User name å’Œ Password ä¸è¾“å…¥ hr,å•å‡» Save password,选择 Default 作为 Role,然åŽå•å‡» Test connection。
测试连接æˆåŠŸã€‚å•å‡» OK。
|
6. |
å•å‡» OK。
|
7. |
HR.ORCL 连接已ç»åˆ›å»ºå¹¶æ·»åŠ 到 Server Explorer é¢æ¿çš„ Data Connections 下é¢ã€‚
|
返回主题列表
现在,您将创建一个å为 DEPENDENTS çš„æ–°è¡¨ï¼Œå®ƒåŒ…å« EMPLOYEES 表的一个外键。
返回主题列表
创建列
è¦åœ¨è¡¨ä¸åˆ›å»ºåˆ—,执行以下æ¥éª¤ï¼š
1. |
展开 HR.ORCL。å³é”®å•å‡» Tables,然åŽé€‰æ‹© New Relational Table...。
|
2. |
在 Table name ä¸è¾“å…¥ DEPENDENTS,然åŽåœ¨ Columns 部分å•å‡» Add。
|
3. |
在 Name ä¸è¾“å…¥ FIRSTNAME,选择 VARCHAR2 作为 Data type,并在 Size ä¸è¾“å…¥ 30。然åŽï¼Œå•å‡» Add。
|
4. |
在 Name ä¸è¾“å…¥ LASTNAME,选择 VARCHAR2 作为 Data type,并在 Size ä¸è¾“å…¥ 30。然åŽï¼Œå•å‡» Add。
|
5. |
在 Name ä¸è¾“å…¥ BIRTHDATE,然åŽé€‰æ‹© DATE 作为 Data type。然åŽï¼Œå•å‡» Add。
|
6. |
在 Name ä¸è¾“å…¥ RELATIONSHIP,选择 VARCHAR2 作为 Data type ,并在 Size ä¸è¾“å…¥ 20。然åŽï¼Œå•å‡» Add。
|
7. |
在 Name ä¸è¾“å…¥ EMPLOYEEID,选择 NUMBER 作为 Data type ,å–æ¶ˆé€‰ä¸ Allow null,然åŽåœ¨ Precision ä¸è¾“å…¥ 6,在 Scale ä¸è¾“å…¥ 0。然åŽï¼Œå•å‡» Add。
|
8. |
在 Name ä¸è¾“å…¥ DEPENDENTID,选择 NUMBER 作为 Data type ,å–æ¶ˆé€‰ä¸ Allow null,然åŽåœ¨ Precision ä¸è¾“å…¥ 6,在 Scale ä¸è¾“å…¥ 0。然åŽï¼Œå•å‡» Preview SQL。
|
9. |
æ¤å¤„是创建表之åŽå°†æ‰§è¡Œçš„ SQL。å•å‡» OK。
|
10. |
å•å‡» Save。
|
11. |
Output 窗å£ä¼šæ˜¾ç¤ºæ‰§è¡Œæ¶ˆæ¯ã€‚DEPENDENTS è¡¨å·²åˆ›å»ºã€‚å…³é— Output 窗å£ã€‚
|
12. |
在 Server Explorer é¢æ¿ä¸å•å‡» DEPENDENTS 表å‰é¢çš„ +。您å¯ä»¥æŸ¥çœ‹åœ¨è¯¥ä¸»é¢˜ä¸åˆ›å»ºçš„列。现在,您å¯ä»¥åˆ›å»ºç´¢å¼•äº†ã€‚
|
返回主题
创建索引
è¦åˆ›å»ºè¡¨çš„索引,执行以下æ¥éª¤ï¼š
1. |
å•å‡» Indexes 选项å¡ã€‚
|
2. |
å•å‡» Add。
|
3. |
在 Name ä¸è¾“å…¥ DEPENDENTS_INDX,然åŽåœ¨ Index Keys 区域å•å‡» Add。
|
4. |
选择 DEPENDENTID 作为 Key,然åŽå•å‡» Save。
|
5. |
Output 窗å£ä¼šæ˜¾ç¤ºæ‰§è¡Œæ¶ˆæ¯ã€‚DEPENDENTS_INDX 索引创建æˆåŠŸã€‚å…³é— Output 窗å£ã€‚
|
返回主题
创建外键
è¦åˆ›å»ºè¡¨çš„外键,执行以下æ¥éª¤ï¼š
1. |
å•å‡» Constraints 选项å¡ã€‚
|
2. |
å•å‡» Add。
|
3. |
在 Name ä¸è¾“å…¥ EMPLOYEES_FK,选择 Foreign Key 作为 Type,选择 EMPLOYEES 作为 Table,然åŽé€‰æ‹© EMP_EMP_ID_PK 作为 Constraint。选择 EMPLOYEE_ID 作为 Referenced Column,然åŽé€‰æ‹© EMPLOYEEID 作为 Local Column。然åŽï¼Œå•å‡» Add。
|
4. |
在 Name ä¸è¾“å…¥ DEPENDENTS_PK,选择 Primary Key 作为 Type,然åŽåœ¨ Primary key columns 区域ä¸å•å‡» Add。
|
5. |
选择 DEPENDENTID 作为主键列。然åŽï¼Œå•å‡» Save。
Output 窗å£ä¼šæ˜¾ç¤ºæ‰§è¡Œæ¶ˆæ¯ã€‚å…³é— Output 窗å£ã€‚
|
6. |
在 Server Explorer é¢æ¿ä¸å•å‡» Indexes å’Œ Constraints å‰é¢çš„ +。您å¯ä»¥æŸ¥çœ‹è¡¨åŠå…¶ç´¢å¼•å’Œçº¦æŸã€‚
|
返回主题
通过执行以下æ¥éª¤ï¼Œæ‚¨å¯ä»¥è®¿é—®è¡¨ä¸çš„æ•°æ®
1. |
å³é”®å•å‡» DEPENDENTS 表,并选择 Retrieve Data...。
|
2. |
至少输入 4 行数æ®ï¼Œå¦‚下表所示。确ä¿è¾“入有效的 Employee ID,然åŽå•å‡» Save。
FIRSTNAME
|
LASTNAME
|
BIRTHDATE
|
RELATIONSHIP
|
EMPLOYEEID
|
DEPENDENTID
|
Mary
|
Martin
|
06-MAY-80
|
daughter
|
104
|
9999
|
Sue
|
Littlefield
|
12-JUL-68
|
daughter
|
130
|
8888
|
David
|
Griffiths
|
02-APR-97
|
son
|
104
|
7777
|
Aaron
|
Young
|
31-AUG-99
|
son
|
111
|
6666
|
|
返回主题列表
在本主题ä¸ï¼Œæ‰§è¡Œä»¥ä¸‹æ¥éª¤ï¼š
创建 Visual C# Windows 应用程åº
è¦åˆ›å»º Visual C# Windows 应用程åºï¼Œæ‰§è¡Œä»¥ä¸‹æ¥éª¤ï¼š
1. |
å‡è®¾æ‚¨æ²¡æœ‰é€€å‡º Visual Studio,从 File èœå•ä¸é€‰æ‹© New > Project。
|
2. |
在 Project 类型列表ä¸é€‰æ‹© Visual C#:Windowsã€‚é€‰æ‹©æ¨¡æ¿ Windows Application。
您å¯ä»¥åœ¨ Name 域ä¸ä¸ºåº”用程åºè¾“入一个åˆé€‚çš„å称。还å¯ä»¥åœ¨ Location 域ä¸è¾“å…¥è¦ä¿å˜æ–‡ä»¶çš„目录。(注:如果该目录ä¸å˜åœ¨ï¼Œå°†åˆ›å»ºè¯¥ç›®å½•ï¼‰ã€‚
现在,接å—默认å称并å•å‡» OK。
|
3. |
æ·»åŠ äº† Form1.cs [Design] 选项å¡ã€‚
|
返回主题
创建新的数æ®æº
在该应用程åºä¸ï¼Œæ‚¨å°†ä½¿ç”¨åœ¨ HR 模å¼ä¸åˆ›å»ºçš„ DEPENDENTS 表。è¦åˆ›å»ºæ–°çš„æ•°æ®æºï¼Œæ‰§è¡Œä»¥ä¸‹æ¥éª¤ï¼š
1. |
从 Data èœå•ä¸é€‰æ‹© Show Data Sources。
ä¼šæ·»åŠ ä¸€ä¸ª Data Sources é¢æ¿ã€‚
|
2. |
在 Data Sources é¢æ¿ä¸ï¼Œå•å‡» Add New Data Source...。
Data Source Configuration Wizard 打开。
|
3. |
选择 Database 作为 Data Source Type。å•å‡» Next。
|
4. |
在上一个主题ä¸ï¼Œæ‚¨å·²ç»åˆ›å»ºäº†ä¸€ä¸ªæ•°æ®è¿žæŽ¥ HR.ORCL。选择 HR.ORCL,选择 Yes, include sensitive data in the Connection string 选项。å•å‡» Next。
|
5. |
接å—默认选项,将连接å—符串ä¿å˜åˆ°åº”用程åºé…置文件。å•å‡» Next。
|
6. |
现在,选择数æ®é›†ä¸æ‰€éœ€çš„æ•°æ®åº“对象。展开 Tables。展开 DEPENDENTS。å•å‡» DEPENDENTS æ—çš„å¤é€‰æ¡†ã€‚å¤é€‰æ ‡è®°ä¼šå‡ºçŽ°åœ¨è¡¨å称åŠå…¶å±žæ€§çš„æ—边。å¦è¯·æ³¨æ„æ•°æ®é›†çš„å称。
å•å‡» Finish。Dependents è¡¨ä¼šæ·»åŠ åˆ° Data Sources é¢æ¿ä¸ã€‚
|
返回主题
设计表å•
è¦è®¾è®¡è¡¨å•ï¼Œæ‰§è¡Œä»¥ä¸‹æ¥éª¤ï¼š
1. |
现在,您ä½äºŽ Form1.cs[Design] 选项å¡ä¸ã€‚æ ¹æ®éœ€è¦è°ƒæ•´è¡¨å•çš„大å°ã€‚
|
2. |
在 Data Sources é¢æ¿ä¸ï¼Œå±•å¼€ DEPENDENTS。将 DEPENDENTS 拖到 Form1 画布上。
å°†æ·»åŠ DEPENDENTS 表的列åç½‘æ ¼ã€‚æ‚¨å¯ä»¥æ ¹æ®éœ€è¦è°ƒæ•´ç½‘æ ¼çš„å¤§å°ã€‚
|
3. |
åŒå‡» Save å›¾æ ‡ ( )ã€‚æ³¨ï¼šå¦‚æžœè¯¥å›¾æ ‡æœªå¯ç”¨ï¼Œå³é”®å•å‡»å›¾æ ‡å¹¶é€‰æ‹© Enabled。
Form1.cs 代ç 窗å£æ‰“开。
在 Form1.cs 代ç 窗å£ä¸ï¼ŒæŸ¥çœ‹ private void dEPENDENTSBindingNavigatorSaveItem_Click(object sender, EventArgs e) 过程。
|
4. |
为以上三行代ç æ·»åŠ try { } å’Œ catch { } å—。æ¤å¤–,å†æ·»åŠ ä¸€æ¡ MessageBox è¯å¥ï¼Œå¦‚下所示:(以粗体显示的è¯å¥æ˜¯æ‚¨éœ€è¦æ·»åŠ çš„è¯å¥ï¼‰
try { this.Validate(); this.dEPENDENTSBindingSource.EndEdit(); this.dEPENDENTSTableAdapter.Update(this.dataSet1.DEPENDENTS); MessageBox.Show("Update successful");
} catch (System.Exception ex) { MessageBox.Show("Update failed"); }
|
返回主题
è¿è¡Œåº”用程åº
è¦è¿è¡Œåº”用程åºï¼Œæ‰§è¡Œä»¥ä¸‹æ¥éª¤ï¼š
1. |
从 Build èœå•ä¸é€‰æ‹© Build Solution。
确定输出窗å£ä¸æ²¡æœ‰é”™è¯¯æŠ¥å‘Šã€‚
|
2. |
从 Debug èœå•ä¸é€‰æ‹© Start Debugging。
![](http://www.oracle.com/technology/obe/net11gobe/building.net/images/view_image.gif)
Form1 将显示 Dependents 表数æ®ã€‚
![](http://www.oracle.com/technology/obe/net11gobe/building.net/images/view_image.gif)
|
3. |
å°† FIRSTNAME 为“Maryâ€çš„记录的 DEPENDENTID 修改为 5555。å•å‡» Save å›¾æ ‡ã€‚
会出现一个消æ¯æ¡†ï¼Œå…¶ä¸æ˜¾ç¤ºâ€œUpdate successfulâ€æ¶ˆæ¯ã€‚å•å‡» OK。
![](http://www.oracle.com/technology/obe/net11gobe/building.net/images/view_image.gif)
|
4. |
åˆ é™¤ FIRSTNAME 为“Sueâ€çš„员工记录。å•å‡» Delete å›¾æ ‡ã€‚
å•å‡» Save å›¾æ ‡ã€‚ä¼šå‡ºçŽ°ä¸€ä¸ªæ¶ˆæ¯æ¡†ï¼Œå…¶ä¸æ˜¾ç¤ºâ€œUpdate successfulâ€æ¶ˆæ¯ã€‚å•å‡» OK。
å…³é— Form1。
|
返回主题
返回主题列表
现在,您将创建并è¿è¡Œå˜å‚¨è¿‡ç¨‹ã€‚
返回主题列表
创建å˜å‚¨è¿‡ç¨‹
1. |
从 Server Explorer é¢æ¿ä¸ï¼Œå³é”®å•å‡» Packages 并选择 New Package...
|
2. |
接å—默认的 Package name,并å•å‡» Methods 下é¢çš„ Add。
|
3. |
输入 GETCURSORS 作为方法å,选择 Procedure 作为方法类型,然åŽå•å‡» Parameters 下é¢çš„ Add。
|
4. |
在 Name ä¸è¾“å…¥ MAXROWS,然åŽå•å‡» Add。
|
5. |
在 Name ä¸è¾“å…¥ EMPLOYEESCUR,选择 OUT 作为 Direction,然åŽé€‰æ‹© SYS_REFCURSOR 作为 Data type。然åŽï¼Œå•å‡» Add。
|
6. |
在 Name ä¸è¾“å…¥ DEPENDENTSCUR,选择 OUT 作为 Direction,然åŽé€‰æ‹© SYS_REFCURSOR 作为 Data type。å•å‡» OK。
|
7. |
å•å‡» Preview SQL >> 以查看å³å°†æ‰§è¡Œçš„ SQL。
|
8. |
查看 SQL 并å•å‡» OK。
|
9. |
å•å‡» OK 创建程åºåŒ…。
Output 窗å£ä¼šæ˜¾ç¤ºæ‰§è¡Œæ¶ˆæ¯ã€‚å…³é— Output 窗å£ã€‚
|
返回主题
编辑程åºåŒ…主体
1. |
程åºåŒ…å·²ç»åˆ›å»ºï¼Œç¨‹åºåŒ…主体已ç»æ‰“开。如果您没有看到为程åºåŒ…主体生æˆçš„代ç ,å³é”®å•å‡» Server Explorer ä¸çš„ PACKAGE1 程åºåŒ…,并选择 Edit Package Body。å‘下滚动以查找行 NULL;
|
2. |
ä½¿ç”¨ä»¥ä¸‹è¡Œæ›¿æ¢ NULL; 行:
OPEN EMPLOYEESCUR FOR SELECT * FROM EMPLOYEES;
OPEN DEPENDENTSCUR FOR SELECT * FROM DEPENDENTS;
|
3. |
å³é”®å•å‡»çª—å£é€‰é¡¹å¡å¹¶é€‰æ‹© Save。
Output 窗å£ä¼šæ˜¾ç¤ºæ‰§è¡Œæ¶ˆæ¯ã€‚å…³é— Output 窗å£ã€‚
|
返回主题
è¿è¡Œå˜å‚¨è¿‡ç¨‹
1. |
在 Server Explorer é¢æ¿ä¸ï¼Œå±•å¼€ç¨‹åºåŒ… PACKAGE1。å³é”®å•å‡» GETCURSORS 并选择 Run。
|
2. |
输入 999 作为 MAXROWS å‚数值,然åŽå•å‡» OK。
|
3. |
为 EMPLOYEESCUR 选择值。
|
4. |
将显示 EMPLOYEESCUR 的详细信æ¯ã€‚为 DEPENDENTSCUR 选择值。
|
5. |
显示 DEPENDENTSCUR 详细信æ¯ã€‚å…³é— Output 窗å£ã€‚
|
返回主题
利用查询窗å£ï¼Œå¯ä»¥é’ˆå¯¹æ•°æ®åº“ä¸çš„æ•°æ®è¿è¡Œä¸€ä¸ªæˆ–多个查询。执行以下æ¥éª¤ï¼š
1. |
å³é”®å•å‡»æ•°æ®åº“连接 HR.ORCL 并选择 Query Window。
|
2. |
输入 SQL 命令 SELECT * FROM DEPENDENTS; 并å•å‡» Execute。
|
3. |
将显示结果。è¦æ ¼å¼åŒ–结果,å³é”®å•å‡»æŸ¥è¯¢åŒºåŸŸï¼Œé€‰æ‹© Set Query Output > Text,然åŽå†æ¬¡å•å‡» Execute。
|
4. |
ç»“æžœä»¥æ–‡æœ¬æ ¼å¼æ˜¾ç¤ºã€‚
|
5. |
现在,您一次å¯ä»¥æ‰§è¡Œå¤šä¸ª SQL è¯å¥ã€‚æ·»åŠ SQL 命令 SELECT * FROM EMPLOYEES;。è¦åŒæ—¶æ‰§è¡Œè¿™ä¸¤ä¸ªè¯å¥ï¼Œæ‚¨éœ€è¦é€‰æ‹©è¿™ä¸¤ä¸ªè¯å¥ï¼Œç„¶åŽå•å‡» Execute。注:如果没有åŒæ—¶é€‰æ‹©è¿™ä¸¤ä¸ªè¯å¥ï¼Œåˆ™ä»…è¿è¡Œåˆ—表ä¸çš„最åŽä¸€æ¡ SQL è¯å¥ã€‚
|
6. |
å‘上滚动到输出顶部。您å¯ä»¥çœ‹åˆ°è¿™ä¸¤ä¸ªæŸ¥è¯¢çš„æ•°æ®ã€‚
|
返回主题列表
在本教程ä¸ï¼Œæ‚¨å¦ä¹ 了如何:
![](http://www.oracle.com/technology/obe/net11gobe/building.net/images/bullet.gif) |
创建表ã€ç´¢å¼•å’Œçº¦æŸã€‚ |
![](http://www.oracle.com/technology/obe/net11gobe/building.net/images/bullet.gif) |
æŸ¥çœ‹è¡¨æ•°æ® |
![](http://www.oracle.com/technology/obe/net11gobe/building.net/images/bullet.gif) |
自动生æˆä»£ç |
![](http://www.oracle.com/technology/obe/net11gobe/building.net/images/bullet.gif) |
创建和è¿è¡Œå˜å‚¨è¿‡ç¨‹
|
![](http://www.oracle.com/technology/obe/net11gobe/building.net/images/bullet.gif) |
ä½¿ç”¨æŸ¥è¯¢çª—å£ |
返回主题列表
å°†é¼ æ ‡ç§»åˆ°è¯¥å›¾æ ‡ä¸Šå¯ä»¥éšè—所有å±å¹•æˆªå›¾ã€‚
|