[+/-]
MySQLDataReader
を作成するには、コンストラクタを直接使用するのではなく、MySqlCommand
オブジェクトの
MySqlCommand.ExecuteReader
メソッドを呼び出す必要があります。
MySqlDataReader
が使用されている間、関連する
MySqlConnection
は
MySqlDataReader
への供給に忙しく、MySqlConnection
で、閉じる以外の作業を行うことはできません。MySqlDataReader
の MySqlDataReader.Close
メソッドが呼び出されるまでは、その状態が続きます。
MySqlDataReader
を閉じた後に呼び出せるプロパティは、MySqlDataReader.IsClosed
および MySqlDataReader.RecordsAffected
のみです。RecordsAffected
プロパティは、MySqlDataReader
が存在する間はいつでもアクセスすることが可能ですが、RecordsAffected
の値を戻す前はいつも Close
を呼び出し、戻り値が正確であるようにしてください。
適切にパフォーマンスを行うために、MySqlDataReader
は不要なオブジェクトの作成や、不必要なデータのコピーを作ることを避けます。結果として、MySqlDataReader.GetValue
をはじめとするメソッドへの複数のセルが、同じオブジェクトへ参照を返します。GetValue
などのメソッドによって戻されたオブジェクトの、基礎となる値を改変している場合は、十分に注意してください。
例
次は、MySqlConnection
、MySqlCommand
、そして
MySqlDataReader
を作成する例です。この例はデータを読み取り、コンソールへ書き出します。そして最終的にMySqlDataReader
を閉じ、その後 MySqlConnection
を閉じます。
Visual Basic 例 :
Public Sub ReadMyData(myConnString As String) Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders" Dim myConnection As New MySqlConnection(myConnString) Dim myCommand As New MySqlCommand(mySelectQuery, myConnection) myConnection.Open() Dim myReader As MySqlDataReader myReader = myCommand.ExecuteReader() ' Always call Read before accessing data. While myReader.Read() Console.WriteLine((myReader.GetInt32(0) & ", " & myReader.GetString(1))) End While ' always call Close when done reading. myReader.Close() ' Close the connection when done with it. myConnection.Close() End Sub 'ReadMyData
C# 例 :
public void ReadMyData(string myConnString) { string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders"; MySqlConnection myConnection = new MySqlConnection(myConnString); MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection); myConnection.Open(); MySqlDataReader myReader; myReader = myCommand.ExecuteReader(); // Always call Read before accessing data. while (myReader.Read()) { Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1)); } // always call Close when done reading. myReader.Close(); // Close the connection when done with it. myConnection.Close(); }
GetBytes
は、フィールドで使用可能なバイトの数を戻します。ほとんどの場合、これはフィールドの長さと同じになります。ただし、フィールドからバイトを得るために
GetBytes
がすでに使用されている場合は、戻された数がフィールドの実際の長さより少ない場合があります。例えば、MySqlDataReader
が大規模なデータ構造をバッファに読み込んでいる場合も、そのケースに当てはまる可能性があります。詳細は、MySqlCommand.CommandBehavior
の SequentialAccess
設定を参照してください。
ヌル リファレンス ( Visual Basic では
Nothing
)
であるバッファを渡す場合は、GetBytes
がフィールドの長さをバイトで戻します。
変換は行われません。そのため、取り出されたデータはすでにバイト列である必要があります。
指定したカラムの値を TimeSpan
オブジェクトとして取得します。
パラメータ : カラムの 0 から始まる序数。
戻り値 : 指定したカラムの値。
指定したカラムの値を
System.DateTime
オブジェクトとして取得します。
MySQL は、日付カラムが値 '0000-00-00'
を、日付時刻カラムが値 '0000-00-00
00:00:00'
を受け入れるのを許可します。DateTime
構造はこれらの値を含んだり、また表したりすることはできません。ゼロ値を含む可能性のあるカラムから日付時刻値を読み取るには、GetMySqlDateTime
を使用します。このメソッドを使ってゼロ日付時刻カラムを読み取る動作は、ZeroDateTimeBehavior
接続ストリング
オプションによって定義されます。このオプションの詳細は、MySqlConnection.ConnectionString
を参照してください。
パラメータ : カラムの 0 から始まる序数。
戻り値 : 指定したカラムの値。
指定したカラムの値を
MySql.Data.Types.MySqlDateTime
オブジェクトとして取得します。
パラメータ : カラムの 0 から始まる序数。
戻り値 : 指定したカラムの値。