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());
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());
相关文章推荐
- Oracle Data Provider for .NET 的使用经验
- Oracle Data Provider for .NET 的使用经验
- Oracle Data Provider for .NET的使用(二)-驱动更换与注意事项
- Oracle Data Provider for .NET 的使用经验
- Oracle Data Provider for .NET 的使用经验(3)
- Oracle Data Provider for .NET的使用(托管与非托管(一))
- Oracle Data Provider for .NET的使用(三)-ORACLE与.NET类型对应关系
- Oracle Data Provider for .NET 的使用经验(2 )
- Oracle Data Provider for .NET 的使用经验(1)
- Oracle Data Provider for .NET连接oracle数据库
- Oracle Data Provider for .NET
- Oracle Data Provider for .NET 安装
- Oracle Data Provider for .NET连接oracle数据库
- Oracle Data Provider for .NET
- Oracle Data Provider for .NET, Managed Driver Beta 11.2.0.3.50 .net 的福音
- Oracle Data Provider for .NET
- Oracle Data Provider for .NET连接oracle数据库(01)
- the oracle data provider for DotNet 的比较
- The DataDirect provider for Oracle调用存储过程使用Cursor类型参数
- 一个 Oracle Data Provider For .NET (ODP.NET)调用的实例