DB2 9 利用拓荒(733 查验)认证指南,第 6 局部: .NET 编程(4)
2011-03-06 23:47
399 查看
完成 DB2 与 .NET 框架的无缝接口
![](https://www6.software.ibm.com/developerworks/i/dw.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
用 ADO.NET 读取和更新数据
在本节中,您将学习如何在 .NET 利用递次中运用 ADO.NET
什么是
若何运用
若何运用
若何运用
DB2Command 工具
当运用 DB2 .NET Data Provider 时,可以经过
若要从
清单 5. 实行非盘问 SQL 语句
若要从
清单 6. 实行盘问
利用递次实行完一个数据库事宜后,必需回滚该事宜,否则提交该事宜。可以运用
可以运用
清单 7. 在 C# 中读取结果集
![](https://www.ibm.com/i/v14/rules/blue_rule.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/v14/icons/u_bold.gif)
回页首
将参数添加到 DB2Command 工具中
关于静态 SQL,需要添加参数到
清单 8. 添加参数到 DB2Command 工具中,并设置参数的值
![](https://www.ibm.com/i/v14/rules/blue_rule.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/v14/icons/u_bold.gif)
回页首
示例代码
清单 9 演示了本节中接头的统统观观点,包孕:
创设
实行
实行 SQL 盘问
理睬结果集工具
清单 9. DB2Command:示例利用递次
若要运转该利用递次,可发出以下敕令:
这个利用递次的输出应类似下面的内容:
版权声明:
原创作品,容许转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。否则将究查法则责任。
![](https://www6.software.ibm.com/developerworks/i/dw.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
用 ADO.NET 读取和更新数据
在本节中,您将学习如何在 .NET 利用递次中运用 ADO.NET
DB2Command工具来实行 SQL 语句。读完本节后,您将学会:
什么是
DB2Command工具
若何运用
ExecuteReader()方法从 DB2 中读数据
若何运用
ExecuteNonQuery()方法拔出和删除数据
若何运用
ExecuteScalar()方法前往单个值
DB2Command 工具
DB2Command工具容许您指定与 DB2 住手交互的体例。例如,可以对 DB2 中的数据实行
SELECT、
INSERT、
MODIFY和
DELETE敕令。
当运用 DB2 .NET Data Provider 时,可以经过
DB2Command类的
ExecuteReader()和
ExecuteNonQuery()方法以及它的
CommandText、
CommandType和
Transaction属性实行 SQL 语句。关于有输出的 SQL 语句,应该运用
ExecuteReader()方法;它的结果可以从
DB2DataReader工具中检索。关于统统其余 SQL 语句,应该运用
ExecuteNonQuery()方法。
DB2Command工具的
Transaction属性应该初始化为一个
DB2Transaction。
DB2Transaction工具担任回滚和提交数据库事宜。
DB2Command工具可以运用
DB2Connection.CreateCommand()方法创设。下面是一个例子:
DB2Command cmd; ... //assume conn is a DB2Connection object cmd = conn.createCommand();
若要从
DB2Command工具中实行
INSERT、
UPDATE或
DELETESQL 语句,可将
CommandContext设置为响应的 SQL 语句,并挪用
cmd.ExecuteNonQuery()方法。例如:
清单 5. 实行非盘问 SQL 语句
// assume a DB2Connection conn DB2Command cmd = conn.CreateCommand(); DB2Transaction trans = conn.BeginTransaction(); cmd.Transaction = trans; cmd.CommandText = "INSERT INTO STAFF (ID,NAME,DEPT,JOB) VALUES (401, 'Peter', 99,'Mgr')"; cmd.ExecuteNonQuery();
若要从
DB2Command工具中实行一个盘问,可将
CommandContext设置为盘问,并挪用
cmd.ExecuteReader()方法:
清单 6. 实行盘问
// assume a DB2Connection conn DB2Command cmd = conn.CreateCommand(); DB2Transaction trans = conn.BeginTransaction(); cmd.Transaction = trans; cmd.CommandText = "SELECT ID, NAME, JOB FROM STAFF WHERE DEPT = 99"; DB2DataReader reader = cmd.ExecuteReader();
利用递次实行完一个数据库事宜后,必需回滚该事宜,否则提交该事宜。可以运用
DB2Transaction工具的
Commit()和
Rollback()方法来实行提交和回滚。下面揭示如何在 C# 中回滚或提交事宜:
// assume a DB2Transaction object trans trans.Rollback(); ... trans.Commit();
可以运用
DB2DataReader工具来理睬结果集。运用
Read()可行进到结果集的下一行。然后,在每次取回数据之后,运用吻合数据标准的方法检索列值。可以运用
GetString()、
GetInt32()、
GetDecimal()等方法(关于其余可用数据标准也有类似的方法)从输出的各个列中提取数据。可以运用
DB2DataReader.Close()方法封锁
DB2DataReader。当输出读取停止时,应该接续实行多么的利用。清单 7 揭示了在 C# 中若何读取结果集:
清单 7. 在 C# 中读取结果集
// assume a DB2DataReader reader Int16 id = 0; String name = ""; string job = ""; // Output the results of the query while(reader.Read()) { id = reader.GetInt16(0); name = reader.GetString(1); job = reader.GetString(2); Console.WriteLine(" " id " " name " " job); } reader.Close();
![](https://www.ibm.com/i/v14/rules/blue_rule.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/v14/icons/u_bold.gif)
回页首
将参数添加到 DB2Command 工具中
关于静态 SQL,需要添加参数到
DB2Command工具中,并设置这些参数的值,例如:
清单 8. 添加参数到 DB2Command 工具中,并设置参数的值
String insertStmt = "INSERT INTO STAFF (ID,NAME,DEPT,JOB) VALUES (?, ?, 99, ?)"; String [,] staff = {{"Smyth","LW"},{"Hesky","RW"},{"Peter","CLK"}}; //Assume conn is a DB2Connection object DB2Command cmd = conn.CreateCommand(); trans = conn.BeginTransaction(); cmd.Transaction = trans; cmd.CommandText = insertStmt; cmd.Prepare(); // Declare the parameters for the statement cmd.Parameters.Add("@id", DB2Type.SmallInt); cmd.Parameters.Add("@name", DB2Type.VarChar, 9); cmd.Parameters.Add("@job", DB2Type.Char, 5); //Set their values and then insert for (int i = 0; i < 3; i ) { cmd.Parameters["@id"].Value = 401 i; cmd.Parameters["@name"].Value = staff[i,0]; cmd.Parameters["@job"].Value = staff[i,1]; cmd.ExecuteNonQuery(); }
![](https://www.ibm.com/i/v14/rules/blue_rule.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/c.gif)
![](https://www.ibm.com/i/v14/icons/u_bold.gif)
回页首
示例代码
清单 9 演示了本节中接头的统统观观点,包孕:
创设
DB2Command工具
实行
INSERT、
UPDATE或
DELETE语句
实行 SQL 盘问
理睬结果集工具
清单 9. DB2Command:示例利用递次
using System; using System.Data; using System.IO; using IBM.Data.DB2; > 若要编译该代码,可将该递次放入包孕剧本 bldapp.bat 的 �2PATH%\samples\.NET\cs 目录中。然后发出以下敕令: bldapp AccessSamplDb
若要运转该利用递次,可发出以下敕令:
AccessSamplDb
这个利用递次的输出应类似下面的内容:
Employe # Employee Name Job 401 Smyth LW 402 Hesky RW 403 Peter CLK
版权声明:
原创作品,容许转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。否则将究查法则责任。
相关文章推荐
- DB2 9 使用拓荒(733 考试)认证指南,第 6 部分: .NET 编程(7)
- DB2 9 利用斥地(733 考试)认证指南,第 6 部门: .NET 编程(6)
- DB2 9 应用开辟(733 测验)认证指南,第 6 局部: .NET 编程(5)
- DB2 9 使用拓荒(733 检修)认证指南,第 6 部分: .NET 编程(2)
- DB2 9 把持启示(733 查验)认证指南,第 6 部分: .NET 编程(1)
- DB2 9 运用拓荒(733 查验)认证指南,第 1 局部: 数据库器材与编程步伐(1)
- DB2 9 利用开荒(733 检验)认证指南,第 5 局部: CLI/ODBC 编程(2)
- DB2 9 运用开拓(733 检修)认证指南,第 6 部分: .NET 编程(3)
- DB2 9 利用启示(733 测验)认证指南,第 7 部分: Java 编程(5)
- DB2 9 使用斥地(733 测验)认证指南,第 1 局部: 数据库对象与编程措施(2)
- DB2 9 根蒂(730 查验)认证指南,第 6 局部: 数据并发性(4)
- DB2 9 运用开辟(733 检验)认证指南,第 5 局部: CLI/ODBC 编程(1)
- DB2 9 利用拓荒(733 测验)认证指南,第 9 部门: 用户定义的例程(5)
- DB2 9 运用开发(733 考试)认证指南,第 7 局部: Java 编程(2)
- DB2 9 操纵开辟(733 测验)认证指南,第 4 局部: 嵌入式 SQL 编程(5)
- DB2 9 运用斥地(733 考试)认证指南,第 7 局部: Java 编程(1)
- DB2 9 使用启示(733 查验)认证指南,第 2 局部: DB2 数据独霸(8)
- DB2 9 使用拓荒(733 检验)认证指南,第 4 部分: 嵌入式 SQL 编程(3)
- DB2 9 运用启示(733 测验)认证指南,第 2 局部: DB2 数据利用(7)
- DB2 9 使用拓荒(733 考试)认证指南,第 4 部分: 嵌入式 SQL 编程(2)