OleDbCommandの使い方
OleDbCommandは、OleDb接続でSQLステートメントを実行するためのクラスです。クエリ、挿入、更新、削除などの操作を実行できます。
以下是OleDbCommand经常使用的一些方法和属性:
- コンストラクタ:
- OleDbCommand():パラメーターを持たないコンストラクター。
- OleDbCommand(string cmdText):指定されたSQL文を使用して、OleDbCommandオブジェクトを作成します。
- 指定されたSQL文とOleDbConnectionオブジェクトを使用して、OleDbCommandオブジェクトを作成します。
- 特性:
- CommandTextプロパティ:実行するSQLステートメントの取得または設定。
- CommandTypeプロパティ:実行するコマンドのタイプ(Text、TableDirect、StoredProcedureなど)を取得または設定します。
- Connection:OleDbCommandに関連付けられたOleDbConnectionオブジェクトを取得または設定します。
- パラメーター:OleDbCommandに関連付けられているパラメーターのコレクションを取得します。
- 手順:
- ExecuteNonQuery()メソッドは、SQL文を実行し、影響を受けた行数を返すものであり、挿入、更新、削除操作に使用します。
- ExecuteReader()メソッドは、SQLクエリを実行してOleDbDataReaderオブジェクトを返し、検索結果を読み取るために使用します。
- ExecuteScalar():SQL文を実行し、結果セットの最初の行の最初の列の値を返す。
- Prepare():SQL文またはストアドプロシージャの実行準備をする。
OleDbCommandを使用してクエリを実行するサンプルコードは以下の通りです:
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\mydb.accdb";
string query = "SELECT * FROM Customers WHERE Country = ?";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
using (OleDbCommand command = new OleDbCommand(query, connection))
{
command.Parameters.AddWithValue("Country", "USA");
using (OleDbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine("CustomerID: {0}, CompanyName: {1}, ContactName: {2}",
reader["CustomerID"], reader["CompanyName"], reader["ContactName"]);
}
}
}
}
上記の例は、OleDbCommandのコンストラクタとExecuteReader()メソッドを使用してクエリを実行し、SQLインジェクション攻撃を防ぐためにパラメータ化クエリを使用しています。