[+/-]
データセットを満たし、MySQL データベースの更新に使用されるデータ コマンドのセットとデータベース接続を表します。このクラスを継承することはできません。
MySQLDataAdapter
は、データの引き出しと保存のため、System.Data.DataSet
と MySQL
間のブリッジの役割をはたします。MySQLDataAdapter
は、データソースに対して適切な SQL
文を使用し、DataSet
内のデータをデータソースのデータと一致するように変える
DbDataAdapter.Fill
と、データソースのデータを
DataSet
のデータと一致するように変える
DbDataAdapter.Update
をマッピングすることによってこのブリッジを供給します。
MySQLDataAdapter
が
DataSet
をファイルする時、戻されたデータに必要なテーブルとカラムがまだない場合は、それらを作成します。ただし、プライマリ
キー情報は、System.Data.MissingSchemaAction
プロパティが
System.Data.MissingSchemaAction.AddWithKey
に設定にされていない限り、明示的に作成されたスキーマには含まれません。また、MySQLDataAdapter
が、プライマリ キー情報を含む
DataSet
のスキーマを、System.Data.Common.DbDataAdapter.FillSchema
を使用してデータとファイルする前に作成することもあります。
MySQLDataAdapter
は、MySqlConnection
と
MySqlCommand
の関連付けに使用され、MySQL
データベースに接続する際のパフォーマンスを向上します。
MySQLDataAdapter
はまた、データのロードおよび更新を促進する
MySqlDataAdapter.SelectCommand
、MySqlDataAdapter.InsertCommand
、MySqlDataAdapter.DeleteCommand
、MySqlDataAdapter.UpdateCommand
、そして DataAdapter.TableMappings
を含みます。
MySQLDataAdapter
のインスタンスが作成される際、赤/白のプロパティが初期値に設定されます。それらの値のリストは、MySQLDataAdapter
コンストラクタをご覧ください。
.NET 1.0 および 1.1 での DataColumn
クラスは、UInt16 、UInt32 、または UInt64
タイプのカラムが自動インクリメント
カラムなるのを認めないので注意してください。MySQL
で自動インクリメント
カラムを使用したい場合は、符号付き整数カラムの使用を考慮してください。
例
The following example creates a MySqlCommand
and a MySqlConnection
. The
MySqlConnection
is opened and set as the
MySqlCommand.Connection
for the
MySqlCommand
. The example then calls
MySqlCommand.ExecuteNonQuery
, and closes the
connection. To accomplish this, the
ExecuteNonQuery
is passed a connection string
and a query string that is a SQL INSERT statement.
Visual Basic 例 :
Public Function SelectRows(dataSet As DataSet, connection As String, query As String) As DataSet Dim conn As New MySqlConnection(connection) Dim adapter As New MySqlDataAdapter() adapter.SelectCommand = new MySqlCommand(query, conn) adapter.Fill(dataset) Return dataset End Function
C# 例 :
public DataSet SelectRows(DataSet dataset,string connection,string query) { MySqlConnection conn = new MySqlConnection(connection); MySqlDataAdapter adapter = new MySqlDataAdapter(); adapter.SelectCommand = new MySqlCommand(query, conn); adapter.Fill(dataset); return dataset; }
MySqlDataAdapter のオーバーロード メソッド
MySqlDataAdapter クラスの新規インスタンスを初期化します。
MySqlDataAdapter
のインスタンスが作成される際、赤/白のプロパティが以下の初期値に設定されます。
プロパティ | 初期値 |
MissingMappingAction |
MissingMappingAction.Passthrough |
MissingSchemaAction |
MissingSchemaAction.Add |
これらのプロパティの値は、プロパティへの別の呼び出しを通じて変更することができます。
例
以下の例は MySqlDataAdapter
を作成し、そのプロパティの一部を設定します。
Visual Basic 例 :
Public Sub CreateSqlDataAdapter() Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _ "database=test") Dim da As MySqlDataAdapter = New MySqlDataAdapter da.MissingSchemaAction = MissingSchemaAction.AddWithKey da.SelectCommand = New MySqlCommand("SELECT id, name FROM mytable", conn) da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _ "VALUES (?id, ?name)", conn) da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=?id, name=?name " & _ "WHERE id=?oldId", conn) da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=?id", conn) da.InsertCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id") da.InsertCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name") da.UpdateCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id") da.UpdateCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name") da.UpdateCommand.Parameters.Add("?oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original da.DeleteCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original End Sub
C# 例 :
public static void CreateSqlDataAdapter() { MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test"); MySqlDataAdapter da = new MySqlDataAdapter(); da.MissingSchemaAction = MissingSchemaAction.AddWithKey; da.SelectCommand = new MySqlCommand("SELECT id, name FROM mytable", conn); da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " + "VALUES (?id, ?name)", conn); da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=?id, name=?name " + "WHERE id=?oldId", conn); da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=?id", conn); da.InsertCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id"); da.InsertCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name"); da.UpdateCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id"); da.UpdateCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name"); da.UpdateCommand.Parameters.Add("?oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; da.DeleteCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; }
関連する MySqlCommand
オブジェクトで、 MySqlDataAdapter
クラスの新規インスタンスを
SelectCommand
プロパティとして初期化します。
パラメータ :
SELECT
文、またはストアドプロシージャである
MySqlCommand
と、MySqlDataAdapter
の
SelectCommand
プロパティとして設定された
MySqlCommand
。
MySqlDataAdapter
のインスタンスが作成される際、赤/白のプロパティが以下の初期値に設定されます。
プロパティ | 初期値 |
MissingMappingAction |
MissingMappingAction.Passthrough |
MissingSchemaAction |
MissingSchemaAction.Add |
これらのプロパティの値は、プロパティへの別の呼び出しを通じて変更することができます。
SelectCommand
( または他のコマンド
プロパティ ) が作成済みの
SelectCommand
に割り当てられた場合、MySqlCommand
のクローンは生成されません。SelectCommand
は、作成済みの MySqlCommand
オブジェクトへの参照を維持します。
例
以下の例は MySqlDataAdapter
を作成し、そのプロパティの一部を設定します。
Visual Basic 例 :
Public Sub CreateSqlDataAdapter() Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _ "database=test") Dim cmd as new MySqlCommand("SELECT id, name FROM mytable", conn) Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd) da.MissingSchemaAction = MissingSchemaAction.AddWithKey da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _ "VALUES (?id, ?name)", conn) da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=?id, name=?name " & _ "WHERE id=?oldId", conn) da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=?id", conn) da.InsertCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id") da.InsertCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name") da.UpdateCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id") da.UpdateCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name") da.UpdateCommand.Parameters.Add("?oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original da.DeleteCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original End Sub
C# 例 :
public static void CreateSqlDataAdapter() { MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test"); MySqlCommand cmd = new MySqlCommand("SELECT id, name FROM mytable", conn); MySqlDataAdapter da = new MySqlDataAdapter(cmd); da.MissingSchemaAction = MissingSchemaAction.AddWithKey; da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " + "VALUES (?id, ?name)", conn); da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=?id, name=?name " + "WHERE id=?oldId", conn); da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=?id", conn); da.InsertCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id"); da.InsertCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name"); da.UpdateCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id"); da.UpdateCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name"); da.UpdateCommand.Parameters.Add("?oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; da.DeleteCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; }
SelectCommand
と
MySqlConnection
オブジェクトで、
MySqlDataAdapter
クラスの新規インスタンスを初期化します。
パラメータ
:MySqlDataAdapter
の
SelectCommand
プロパティによって使用される、SQL
SELECT
文またはストアド
プロシージャである String
。
パラメータ
:接続を表す MySqlConnection
。
この MySqlDataAdapter
の実装は、MySqlConnection
を、まだ開いていなければ開閉します。これは、ふたつ以上の
MySqlDataAdapter
オブジェクトに対して
DbDataAdapter.Fill
を呼び出す必要のあるアプリケーションでも使用できます。MySqlConnection
がすでに開いている場合、閉じるには
MySqlConnection.Close
または
MySqlConnection.Dispose
を明示的に呼び出す必要があります。
MySqlDataAdapter
のインスタンスが作成される際、赤/白のプロパティが以下の初期値に設定されます。
プロパティ | 初期値 |
MissingMappingAction |
MissingMappingAction.Passthrough |
MissingSchemaAction |
MissingSchemaAction.Add |
これらのプロパティの値は、プロパティへの別の呼び出しを通じて変更することができます。
例
以下の例は MySqlDataAdapter
を作成し、そのプロパティの一部を設定します。
Visual Basic 例 :
Public Sub CreateSqlDataAdapter() Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _ "database=test") Dim da As MySqlDataAdapter = New MySqlDataAdapter("SELECT id, name FROM mytable", conn) da.MissingSchemaAction = MissingSchemaAction.AddWithKey da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _ "VALUES (?id, ?name)", conn) da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=?id, name=?name " & _ "WHERE id=?oldId", conn) da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=?id", conn) da.InsertCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id") da.InsertCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name") da.UpdateCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id") da.UpdateCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name") da.UpdateCommand.Parameters.Add("?oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original da.DeleteCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original End Sub
C# 例 :
public static void CreateSqlDataAdapter() { MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test"); MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, name FROM mytable", conn); da.MissingSchemaAction = MissingSchemaAction.AddWithKey; da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " + "VALUES (?id, ?name)", conn); da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=?id, name=?name " + "WHERE id=?oldId", conn); da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=?id", conn); da.InsertCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id"); da.InsertCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name"); da.UpdateCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id"); da.UpdateCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name"); da.UpdateCommand.Parameters.Add("?oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; da.DeleteCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; }
SelectCommand
と
接続ストリングで、
MySqlDataAdapter
クラスの新規インスタンスを初期化します。
パラメータ
:MySqlDataAdapter
の
SelectCommand
プロパティよって使用される、SQL
SELECT
文またはストアド
プロシージャである string
。
パラメータ : 接続ストリング
MySqlDataAdapter
のインスタンスが作成される際、赤/白のプロパティが以下の初期値に設定されます。
プロパティ | 初期値 |
MissingMappingAction |
MissingMappingAction.Passthrough |
MissingSchemaAction |
MissingSchemaAction.Add |
これらのプロパティの値は、プロパティへの別の呼び出しを通じて変更することができます。
例
以下の例は MySqlDataAdapter
を作成し、そのプロパティの一部を設定します。
Visual Basic 例 :
Public Sub CreateSqlDataAdapter() Dim da As MySqlDataAdapter = New MySqlDataAdapter("SELECT id, name FROM mytable", "Data Source=localhost;database=test") Dim conn As MySqlConnection = da.SelectCommand.Connection da.MissingSchemaAction = MissingSchemaAction.AddWithKey da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _ "VALUES (?id, ?name)", conn) da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=?id, name=?name " & _ "WHERE id=?oldId", conn) da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=?id", conn) da.InsertCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id") da.InsertCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name") da.UpdateCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id") da.UpdateCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name") da.UpdateCommand.Parameters.Add("?oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original da.DeleteCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original End Sub
C# 例 :
public static void CreateSqlDataAdapter() { MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, name FROM mytable", "Data Source=localhost;database=test"); MySqlConnection conn = da.SelectCommand.Connection; da.MissingSchemaAction = MissingSchemaAction.AddWithKey; da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " + "VALUES (?id, ?name)", conn); da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=?id, name=?name " + "WHERE id=?oldId", conn); da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=?id", conn); da.InsertCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id"); da.InsertCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name"); da.UpdateCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id"); da.UpdateCommand.Parameters.Add("?name", MySqlDbType.VarChar, 40, "name"); da.UpdateCommand.Parameters.Add("?oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; da.DeleteCommand.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; }
データセットのレコードを削除するための SQL 文またはストアド プロシージャを取得または設定します。
値
:System.Data.Common.DataAdapter.Update
中に、DataSet
内の削除された行に対応するデータベース内のレコードを削除するための
MySqlCommand
。
System.Data.Common.DataAdapter.Update
中、プロパティが設定されておらず、プライマリ
キー情報が DataSet
内に存在する場合、SelectCommand
プロパティを設定し、MySqlCommandBuilder
を使用すれば、DeleteCommand
を自動生成することが可能です。その後、設定していない追加のコマンドは、MySqlCommandBuilder
によって生成されます。この生成ロジックでは、
DataSet
内にキー
カラム情報が存在している必要があります。
DeleteCommand
が作成済みの
SelectCommand
に割り当てられた場合、MySqlCommand
のクローンは作成されません。DeleteCommand
は、作成済みの MySqlCommand
オブジェクトへの参照を維持します。
例
以下の例は MySqlDataAdapter
を作成し、SelectCommand
と
DeleteCommand
プロパティを設定します。ここでは、MySqlConnection
オブジェクトがすでに作成されていることを前提にしています。
Visual Basic 例 :
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter Dim da As MySqlDataAdapter = New MySqlDataAdapter() Dim cmd As MySqlCommand Dim parm As MySqlParameter ' Create the SelectCommand. cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=?id AND name=?name", conn) cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15) cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15) da.SelectCommand = cmd ' Create the DeleteCommand. cmd = New MySqlCommand("DELETE FROM mytable WHERE id=?id", conn) parm = cmd.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id") parm.SourceVersion = DataRowVersion.Original da.DeleteCommand = cmd Return da End Function
C# 例 :
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn) { MySqlDataAdapter da = new MySqlDataAdapter(); MySqlCommand cmd; MySqlParameter parm; // Create the SelectCommand. cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=?id AND name=?name", conn); cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15); cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15); da.SelectCommand = cmd; // Create the DeleteCommand. cmd = new MySqlCommand("DELETE FROM mytable WHERE id=?id", conn); parm = cmd.Parameters.Add("?id", MySqlDbType.VarChar, 5, "id"); parm.SourceVersion = DataRowVersion.Original; da.DeleteCommand = cmd; return da; }
データ セットにレコードを挿入するための SQL 文またはストアド プロシージャを取得または設定します。
値
:System.Data.Common.DataAdapter.Update
中に、DataSet
内の新しい行に対応するデータベースにレコードを挿入するための
MySqlCommand
。
System.Data.Common.DataAdapter.Update
中、プロパティが設定されておらず、プライマリ
キー情報が DataSet
内に存在する場合、SelectCommand
プロパティを設定し、MySqlCommandBuilder
を使用すれば、InsertCommand
を自動生成することが可能です。その後、設定していない追加のコマンドは、MySqlCommandBuilder
によって生成されます。この生成ロジックでは、
DataSet
内にキー
カラム情報が存在している必要があります。
InsertCommand
が作成済みの
SelectCommand
に割り当てられた場合、MySqlCommand
のクローンは作成されません。InsertCommand
は、作成済みの MySqlCommand
オブジェクトへの参照を維持します。
このコマンドの実行によって行が返される場合、
MySqlCommand
オブジェクトの
MySqlCommand.UpdatedRowSource
プロパティの設定によっては、返された行が
DataSet
に追加されることがあります。
例
以下の例は MySqlDataAdapter
を作成し、SelectCommand
と
InsertCommand
プロパティを設定します。ここでは、MySqlConnection
オブジェクトがすでに作成されていることを前提にしています。
Visual Basic 例 :
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter Dim da As MySqlDataAdapter = New MySqlDataAdapter() Dim cmd As MySqlCommand Dim parm As MySqlParameter ' Create the SelectCommand. cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=?id AND name=?name", conn) cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15) cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15) da.SelectCommand = cmd ' Create the InsertCommand. cmd = New MySqlCommand("INSERT INTO mytable (id,name) VALUES (?id, ?name)", conn) cmd.Parameters.Add( "?id", MySqlDbType.VarChar, 15, "id" ) cmd.Parameters.Add( "?name", MySqlDbType.VarChar, 15, "name" ) da.InsertCommand = cmd Return da End Function
C# 例 :
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn) { MySqlDataAdapter da = new MySqlDataAdapter(); MySqlCommand cmd; MySqlParameter parm; // Create the SelectCommand. cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=?id AND name=?name", conn); cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15); cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15); da.SelectCommand = cmd; // Create the InsertCommand. cmd = new MySqlCommand("INSERT INTO mytable (id,name) VALUES (?id,?name)", conn); cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15, "id" ); cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15, "name" ); da.InsertCommand = cmd; return da; }
データ ソース内のレコードの更新に使用される SQL 文またはストアド プロシージャを取得または設定します。
値
:System.Data.Common.DataAdapter.Update
中に、DataSet
からのデータで、データベース内のレコードを更新するための
MySqlCommand
。
System.Data.Common.DataAdapter.Update
中、プロパティが設定されておらず、プライマリ
キー情報が DataSet
内に存在する場合、SelectCommand
プロパティを設定し、MySqlCommandBuilder
を使用すれば、UpdateCommand
を自動生成することが可能です。その後、設定していない追加のコマンドは、MySqlCommandBuilder
によって生成されます。この生成ロジックでは、
DataSet
内にキー
カラム情報が存在している必要があります。
UpdateCommand
が作成済みの
SelectCommand
に割り当てられた場合、MySqlCommand
のクローンは作成されません。UpdateCommand
は、作成済みの MySqlCommand
オブジェクトへの参照を維持します。
このコマンドの実行によって行が返される場合、
MySqlCommand
オブジェクトの
MySqlCommand.UpdatedRowSource
プロパティの設定によっては、返された行が
DataSet にマージされることがあります。
例
以下の例は MySqlDataAdapter
を作成し、SelectCommand
と
UpdateCommand
プロパティを設定します。ここでは、MySqlConnection
オブジェクトがすでに作成されていることを前提にしています。
Visual Basic 例 :
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter Dim da As MySqlDataAdapter = New MySqlDataAdapter() Dim cmd As MySqlCommand Dim parm As MySqlParameter ' Create the SelectCommand. cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=?id AND name=?name", conn) cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15) cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15) da.SelectCommand = cmd ' Create the UpdateCommand. cmd = New MySqlCommand("UPDATE mytable SET id=?id, name=?name WHERE id=?oldId", conn) cmd.Parameters.Add( "?id", MySqlDbType.VarChar, 15, "id" ) cmd.Parameters.Add( "?name", MySqlDbType.VarChar, 15, "name" ) parm = cmd.Parameters.Add("?oldId", MySqlDbType.VarChar, 15, "id") parm.SourceVersion = DataRowVersion.Original da.UpdateCommand = cmd Return da End Function
C# 例 :
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn) { MySqlDataAdapter da = new MySqlDataAdapter(); MySqlCommand cmd; MySqlParameter parm; // Create the SelectCommand. cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=?id AND name=?name", conn); cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15); cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15); da.SelectCommand = cmd; // Create the UpdateCommand. cmd = new MySqlCommand("UPDATE mytable SET id=?id, name=?name WHERE id=?oldId", conn); cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15, "id" ); cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15, "name" ); parm = cmd.Parameters.Add( "?oldId", MySqlDbType.VarChar, 15, "id" ); parm.SourceVersion = DataRowVersion.Original; da.UpdateCommand = cmd; return da; }
データ ソース内のレコードの選択に使用される SQL 文またはストアド プロシージャを取得または設定します。
値
:System.Data.Common.DbDataAdapter.Fill
中に、DataSet
に格納するレコードをデータベースから選択するための
MySqlCommand
。
SelectCommand
が作成済みの
SelectCommand
に割り当てられた場合、MySqlCommand
のクローンは作成されません。SelectCommand
は、作成済みの MySqlCommand
オブジェクトへの参照を維持します。
SelectCommand
が行を戻さない場合、DataSet
にテーブルは追加されず、例外も発生しません。
例
以下の例は MySqlDataAdapter
を作成し、SelectCommand
と
InsertCommand
プロパティを設定します。ここでは、MySqlConnection
オブジェクトがすでに作成されていることを前提にしています。
Visual Basic 例 :
Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter Dim da As MySqlDataAdapter = New MySqlDataAdapter() Dim cmd As MySqlCommand Dim parm As MySqlParameter ' Create the SelectCommand. cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=?id AND name=?name", conn) cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15) cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15) da.SelectCommand = cmd ' Create the InsertCommand. cmd = New MySqlCommand("INSERT INTO mytable (id,name) VALUES (?id, ?name)", conn) cmd.Parameters.Add( "?id", MySqlDbType.VarChar, 15, "id" ) cmd.Parameters.Add( "?name", MySqlDbType.VarChar, 15, "name" ) da.InsertCommand = cmd Return da End Function
C# 例 :
public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn) { MySqlDataAdapter da = new MySqlDataAdapter(); MySqlCommand cmd; MySqlParameter parm; // Create the SelectCommand. cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=?id AND name=?name", conn); cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15); cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15); da.SelectCommand = cmd; // Create the InsertCommand. cmd = new MySqlCommand("INSERT INTO mytable (id,name) VALUES (?id,?name)", conn); cmd.Parameters.Add("?id", MySqlDbType.VarChar, 15, "id" ); cmd.Parameters.Add("?name", MySqlDbType.VarChar, 15, "name" ); da.InsertCommand = cmd; return da; }