0

Oracle 10g データベースに接続する C# でアプリケーションを開発しています。

私は次のように Oledb を使用しています。

OleDbConnection conn = ConnectionUtil.CreateConexion();

OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = SP_AUTENTICAR_USUARIO;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("p_SED_USUARIO", OleDbType.VarChar).Value = strUsuario;
cmd.Parameters.Add("p_SED_PASS", OleDbType.VarChar).Value = strPass;
cmd.Parameters.Add("p_cursor", OleDbType.Cursor).Direction = ParameterDirection.Output;//I dont know what to put here

conn.Open();
cmd.ExecuteNonQuery();

OleDbDataReader objReader = (OleDbDataReader)cmd.Parameters["p_cursor"].Value;

if (objReader.Read())
{...

ストアド プロシージャを呼び出して、カーソルを で読み取る必要がありますOleDbDataReader

それを行う方法はありますか?

ありがとう、

4

1 に答える 1

-1

このサンプル コードを確認してください。これは OracleDataReader を使用しています。

oraConn.Open();

OracleCommand cursCmd = new OracleCommand("CURSPKG.OPEN_TWO_CURSORS", oraConn);
cursCmd.CommandType = CommandType.StoredProcedure;
cursCmd.Parameters.Add("EMPCURSOR", OracleType.Cursor).Direction = ParameterDirection.Output;
cursCmd.Parameters.Add("DEPTCURSOR", OracleType.Cursor).Direction = ParameterDirection.Output;

OracleDataReader rdr = cursCmd.ExecuteReader();

Console.WriteLine("\nEmp ID\tName");

while (rdr.Read())
  Console.WriteLine("{0}\t{1}, {2}", rdr.GetOracleNumber(0), rdr.GetString(1), rdr.GetString(2));

rdr.NextResult();

Console.WriteLine("\nDept ID\tName");

while (rdr.Read())
  Console.WriteLine("{0}\t{1}", rdr.GetOracleNumber(0), rdr.GetString(1));

rdr.Close();
oraConn.Close();
于 2012-10-06T04:24:00.450 に答える