6.2.5.5 ExecuteNonQuery
このメソッドでは、XmlCommandType
プロパティおよびCommandText
プロパティを使用してSQL文またはコマンドを実行し、影響を受ける行数を戻します。
宣言
// C# public override int ExecuteNonQuery();
戻り値
影響を受ける行数
実装
IDbCommand
例外
InvalidOperationException
- コマンドを実行できない場合
備考
ExecuteNonQuery
では、次の場合に影響を受ける行数を戻します。
-
コマンドが、
UPDATE
、INSERT
またはDELETE
で、XmlCommandType
プロパティがOracleXmlCommandType.None
に設定されている場合。 -
XmlCommandType
プロパティが、OracleXmlCommandType.Insert
、OracleXmlCommandType.Update
、OracleXmlCommandType.Delete
に設定されている場合。
その他のすべての文のタイプに対する戻り値は-1
です。
ExecuteNonQuery
は次のいずれかに対して使用されます。
-
カタログ操作(データベース構造の問合せまたは表などのデータベース・オブジェクトの作成など)。
-
UPDATE
、INSERT
またはDELETE
文の実行による、DataSet
を使用しないデータベース内のデータ変更。 -
XML文書を使用したデータベース内のデータ変更。
ExecuteNonQuery
では、行を戻しませんが、任意の出力パラメータを移入したりまたはパラメータにマップされる値のデータを戻します。
XmlCommandType
プロパティがOracleXmlCommandType.Query
に設定されている場合、ExecuteNonQuery
はCommandText
プロパティ内の選択文を実行し、成功した場合-1
を戻します。生成されるXML文書は廃棄されます。これは、結果としてXML文書を戻さないで操作が正常に完了するかどうかを判別する場合に便利です。
XmlCommandType
プロパティが、OracleXmlCommandType.Insert
、OracleXmlCommandType.Update
または、OracleXmlCommandType.Delete
に設定されている場合、CommandText
プロパティの値はXML文書です。ExecuteNonQuery
では、そのXML文書の変更をXmlSaveProperties
プロパティで指定されている表またはビューに保存します。戻り値はXML文書で処理された行数です。また、XML文書の各行もデータベース内の複数行に影響を与える可能性がありますが、この場合も戻り値はXML文書の行数です。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class ExecuteNonQuerySample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); OracleCommand cmd = new OracleCommand( "select sal from emp where empno=7934", con); object sal = cmd.ExecuteScalar(); Console.WriteLine("Employee sal before update: " + sal); cmd.CommandText = "update emp set sal = sal + .01 where empno=7934"; // Auto-commit changes int rowsUpdated = cmd.ExecuteNonQuery(); if (rowsUpdated > 0) { cmd.CommandText = "select sal from emp where empno=7934"; sal = cmd.ExecuteScalar(); Console.WriteLine("Employee sal after update: " + sal); } // Clean up cmd.Dispose(); con.Dispose(); } }
要件
XMLをサポートするために、このメソッドではデータベースにOracle9i XML Developer's Kits(Oracle XDK)以降をインストールする必要があります。Oracle XDKはOracle Technology Network(OTN)からダウンロードできます。