我是靠谱客的博主 细腻大神,这篇文章主要介绍DB2 9 利用拓荒(733 查验)认证指南,第 6 局部: .NET 编程(4),现在分享给大家,希望可以做个参考。

完成 DB2 与 .NET 框架的无缝接口
developerWorks








用 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 或 DELETE SQL 语句,可将 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();







回页首



将参数添加到 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();
}







回页首



示例代码

清单 9 演示了本节中接头的统统观观点,包孕:

  • 创设 DB2Command 工具
  • 实行 INSERT、UPDATE 或 DELETE 语句
  • 实行 SQL 盘问
  • 理睬结果集工具

清单 9. DB2Command:示例利用递次
                    
using System;
using System.Data;
using System.IO;
using IBM.Data.DB2;
>

若要编译该代码,可将该递次放入包孕剧本 bldapp.bat 的 �2PATH%samples.NETcs 目录中。然后发出以下敕令:

 bldapp AccessSamplDb
 


若要运转该利用递次,可发出以下敕令:

 AccessSamplDb
 


这个利用递次的输出应类似下面的内容:

Employe #  Employee Name   Job
 401        Smyth          LW
 402        Hesky          RW
 403        Peter          CLK





版权声明: 原创作品,容许转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。否则将究查法则责任。

转载于:https://www.cnblogs.com/zgqjymx/archive/2011/03/06/1972835.html

最后

以上就是细腻大神最近收集整理的关于DB2 9 利用拓荒(733 查验)认证指南,第 6 局部: .NET 编程(4)的全部内容,更多相关DB2内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(307)

评论列表共有 0 条评论

立即
投稿
返回
顶部