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);
}
}
}
}