6.11.3.15 VisibleFieldCount
このプロパティでは、非表示ではないOracleDataReader
内のフィールド数が取得されます。
宣言
// C# public override int VisibleFieldcount { get; }
プロパティ値
非表示ではないフィールド数が取得されます。
例外
InvalidOperationException
- リーダーがクローズされています。
備考
アプリケーションがOracleCommand
オブジェクトのAddRowid
プロパティをtrue
に設定すると、アプリケーションはRowId
にアクセスできますが、これは表示可能なフィールドではありません。SELECT文リストにRowId
が追加されている場合は、このフィールドは表示可能です。OracleDataReader.VisibleFieldCount
およびOracleDataReader.FieldCount
は、必ず同じ値を持っています。
例
// C# using System; using System.Data; using System.Data.Common; using Oracle.DataAccess.Client; class VisibleFieldCountSample { static void Main(string[] args) { string constr = "User Id=scott; Password=tiger; Data Source=oracle;"; DbProviderFactory factory = DbProviderFactories.GetFactory("Oracle.DataAccess.Client"); using (DbConnection conn = factory.CreateConnection()) { conn.ConnectionString = constr; try { conn.Open(); OracleCommand cmd = (OracleCommand)factory.CreateCommand(); cmd.Connection = (OracleConnection)conn; //to gain access to ROWIDs of the table cmd.AddRowid = true; cmd.CommandText = "select empno, ename from emp;"; OracleDataReader reader = cmd.ExecuteReader(); int visFC = reader.VisibleFieldCount; //Results in 2 int hidFC = reader.HiddenFieldCount; // Results in 1 Console.Write("Visible field count: " + visFC); Console.Write("Hidden field count: " + hidFC); reader.Dispose(); cmd.Dispose(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } } } }