您的位置:首页 > 数据库 > Oracle

Oracle Data Provider for .NET 的使用

2017-02-21 19:32 405 查看
转自:http://blog.csdn.net/xinsir/article/details/1011678

Oracle Data Provider for .NET 是Oracle提供的基于Ado.NET接口的一个开发包。    

开发者可以通过它,简单的实现在.net中访问oracle数据库。     

因为在开发中一直使用该开发包,所以想基于此谈谈使用该开发包的一些经验。    

           

(基于版本:Oracle Data Provider for .NET Release 10.2       

关于与Microsoft .NET Framework 1.1 Data Provider for Oracle 的比较可参考以下网页   
http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dnadonet/html/odpvsmsdp.asp)  

           

           

           

1. 通过DataAdapter访问数据库         

DataAdapter有四个属性SelectCommand,DeleteCommand,InsertCommand,UpdateCommand   

           

1.1 当做检索处理的时候, 执行SelectCommand的操作,返回数据集。    
// C# 例子 
using System;

using System.Data;

using System.Xml;

using Oracle.DataAccess.Client;

class testSample

{

static void Main()

{

     //数据库连接打开

     OracleConnection con = new OracleConnection();

     con.ConnectionString = "User Id=scott;Password=tiger;Data Source=oracle;";

     con.Open();

     Console.WriteLine("Connected Successfully");
     // Create the command

    // sql文

     OracleCommand cmd = new OracleCommand("", con);

   

     //select statement

     string strSelectSql = "SELECT STU_ID, STU_NAME, AGE, BIRTHDAY, SEX FROM TBL_STUDENT " +

      " WHERE  SEX = :I_SEX AND  BIRTHDAY >= :I_BIRTHDAY AND AGE = :I_AGE ";
     //command和检索sql文 关联

     cmd.CommandText = strSelectSql;

   

     //sql文中变量通过oracle参数传递

   OracleParameter oraParameter;
   oraParameter = new OracleParameter("I_SEX",OracleDbType.Varchar2, 2);

   oraParameter.Value = "01";

   cmd.Parameters.Add(oraParameter);//字符型
   oraParameter = new OracleParameter("I_BIRTHDAY",OracleDbType.Date);//日期型
   oraParameter.Value = "1986/01/01";

   cmd.Parameters.Add(oraParameter);
   oraParameter = new OracleParameter("I_AGE",OracleDbType.Int32);

   oraParameter.Value = 20;

   cmd.Parameters.Add(oraParameter);
     DataSet dtTmp = new DataSet();
     using(OracleDataAdapter dataAdapter = new OracleDataAdapter())

     {

      dataAdapter.SelectCommand = cmd;//检索command设置

      dataAdapter.Fill(dtTmp);//检索结果保存在dtTmp数据集中
     }
     //

     Console.WriteLine("Number of rows : {0} ", dtTmp.Tables[0].Rows.Count);

 

     // Close and Dispose OracleConnection object

     con.Close();

     con.Dispose();
}
1.2    如果sql文只是想count(*) 获得数据库中记录件数,可以直接使用OracleCommand.ExecuteScalar()来快速取得。
 // C# 例子
Cmd = new OracleCommand( "SELECT COUNT(*) FROM TBL_STUDENT", Conn );

Object o = Cmd.ExecuteScalar();

int nRecordCount = Convert.ToInt32(o.ToString());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net