次の方法で共有


SqlDataReader.GetChars(Int32, Int64, Char[], Int32, Int32) メソッド

定義

指定した列オフセットからバッファーに文字ストリームを配列として読み取ります。その際、指定したバッファー オフセット位置から開始します。

public:
 override long GetChars(int i, long dataIndex, cli::array <char> ^ buffer, int bufferIndex, int length);
public override long GetChars (int i, long dataIndex, char[] buffer, int bufferIndex, int length);
override this.GetChars : int * int64 * char[] * int * int -> int64
Public Overrides Function GetChars (i As Integer, dataIndex As Long, buffer As Char(), bufferIndex As Integer, length As Integer) As Long

パラメーター

i
Int32

0 から始まる列序数。

dataIndex
Int64

読み取り操作の開始位置を示す、フィールド内のインデックスです。

buffer
Char[]

バイトのストリームを読み込むバッファー。

bufferIndex
Int32

書き込み操作を開始する buffer 内のインデックス。

length
Int32

バッファーにコピーする最大長。

戻り値

実際に読み取られた文字数。

実装

注釈

GetChars は、フィールドで使用できる文字数を返します。 多くの場合、これはフィールドの正確な長さです。 ただし、既に GetChars を使用してフィールドから文字を取得している場合、返される文字数はフィールドの正しい長さよりも少なくなる場合があります。 たとえば、 が大きなデータ構造を SqlDataReader バッファーに読み取る場合などです。 詳細については、 の設定CommandBehaviorSequentialAccess参照してください。

フィールドの末尾に達した場合、読み取られる実際の文字数は、要求された長さよりも小さくすることができます。 であるnullGetCharsバッファーを渡すと、バッファー オフセット パラメーターに基づく残りのサイズではなく、フィールド全体の長さが文字数で返されます。

変換は実行されません。そこで。 取得するデータは、既に文字配列である必要があります。

注意

が負の場合dataIndex、メソッドは GetChars 0 を返します。

適用対象