[+/-]
データセットを満たし、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;
}
