ODP.NET 为 SELECT 语句实现游标
ODP.NET Implement Cursor for SELECT statement
如何使用 ODP.NET 在基本 SELECT statement like 'SELECT * FROM Employees'
上实现简单的游标提取?
所以这很简单。
首先像这样创建OracleConnection
class
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString);
con.Open(); //opens connection
然后你首先定义和 OracleCommand
实例,方法是传递原始 query/stored 过程作为第一个参数,如
因此在您的特定情况下,它将是 OracleCommand cmd = new OracleCommand("SELECT * FROM Employees", con
if (con.State == ConnectionState.Open)
{
using (OracleCommand cmd = new OracleCommand(<query>/<stored proc>, con))
{
cmd.CommandType = CommandType.StoredProcedure; //in case of stored proc
cmd.BindByName = true;
OracleDataReader reader;
try
{
reader = cmd.ExecuteReader();
while(reader.Read())
{
Console.WriteLine("field: {0}", reader.GetDecimal(0));
}
}
catch (OracleException e)
{
foreach (OracleError err in e.Errors)
{
//print errors
}
}
con.Close();
con.Dispose();
}
}
这里是例子http://www.oracle.com/technetwork/articles/dotnet/williams-refcursors-092375.html
如何使用 ODP.NET 在基本 SELECT statement like 'SELECT * FROM Employees'
上实现简单的游标提取?
所以这很简单。
首先像这样创建OracleConnection
class
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString);
con.Open(); //opens connection
然后你首先定义和 OracleCommand
实例,方法是传递原始 query/stored 过程作为第一个参数,如
因此在您的特定情况下,它将是 OracleCommand cmd = new OracleCommand("SELECT * FROM Employees", con
if (con.State == ConnectionState.Open)
{
using (OracleCommand cmd = new OracleCommand(<query>/<stored proc>, con))
{
cmd.CommandType = CommandType.StoredProcedure; //in case of stored proc
cmd.BindByName = true;
OracleDataReader reader;
try
{
reader = cmd.ExecuteReader();
while(reader.Read())
{
Console.WriteLine("field: {0}", reader.GetDecimal(0));
}
}
catch (OracleException e)
{
foreach (OracleError err in e.Errors)
{
//print errors
}
}
con.Close();
con.Dispose();
}
}
这里是例子http://www.oracle.com/technetwork/articles/dotnet/williams-refcursors-092375.html