首页 > 学院 > 开发设计 > 正文

Oracle Data Provider for .NET 的使用

2019-11-08 00:58:59
字体:
来源:转载
供稿:网友

转自: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());


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表