OracleParameterCollectionクラス
OracleParameterCollection
クラスは、OracleCommand
オブジェクトに関連するすべてのパラメータと、これらのパラメータのDataSet
列へのマッピングのコレクションを表します。
クラスの継承
System.Object
System.MarshalByRefObject
System.Data.Common.DbParameterCollection
Oracle.DataAccess.Client.OracleParameterCollection
宣言
// C# public sealed class OracleParameterCollection : DbParameterCollection, IDataParameterCollection, IList, ICollection, IEnumerable
要件
プロバイダ | ODP.NET管理対象外ドライバ | ODP.NET管理対象ドライバ | ODP.NET Core |
---|---|---|---|
アセンブリ |
|
|
|
ネームスペース |
|
|
|
.NET Framework |
4.5, 4.6, 4.7 |
4.5, 4.6, 4.7 |
4.6.1以降 |
.NET Core |
- |
- |
2.1以降 |
スレッド安全性
パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。
備考
OracleParameterCollection
に追加されたOracleParameter
の位置は、SQL文におけるバインディングの位置です。位置は0
ベースであり、位置に基づくバインディングにのみ使用されます。名前付きのバインディングが使用されている場合、OracleParameterCollection
のOracleParameter
の位置は無視されます。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class OracleParameterCollectionSample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); OracleParameter[] prm = new OracleParameter[3]; // Create OracleParameter objects through OracleParameterCollection OracleCommand cmd = con.CreateCommand(); cmd.CommandText = "select max(empno) from emp"; int maxno = int.Parse(cmd.ExecuteScalar().ToString()); prm[0] = cmd.Parameters.Add("paramEmpno", OracleDbType.Decimal, maxno + 10, ParameterDirection.Input); prm[1] = cmd.Parameters.Add("paramEname", OracleDbType.Varchar2, "Client", ParameterDirection.Input); prm[2] = cmd.Parameters.Add("paramDeptNo", OracleDbType.Decimal, 10, ParameterDirection.Input); cmd.CommandText = "insert into emp(empno, ename, deptno) values(:1, :2, :3)"; cmd.ExecuteNonQuery(); Console.WriteLine("Record for employee id {0} has been inserted.", maxno + 10); // Remove all parameters from OracleParameterCollection cmd.Parameters.Clear(); prm[0].Dispose(); prm[1].Dispose(); prm[2].Dispose(); cmd.Dispose(); con.Close(); con.Dispose(); } }