34744


初歩的な質問ですみません。

OracleCommandでパラメータ設定する際に利用するパラメータクラスは  
通常はOracleParameterと思いますが、SqlParameterというクラスもあるので、  
何が違うのかわかりましたらご教示お願いいたします。


CC BY-SA 3.0
2017-05-16T02:59:39.927
34742
2017-05-16T04:39:38.330
9228
question
c#
C# OracleCommandではOracleParameter SqlParameterどちらを使いますか？


`SqlParameter`はMicrosoft SQL
Server向けの`System.Data.SqlClient`専用のクラスです。`OracleCommand`では`OracleParameter`を使用してください。


CC BY-SA 3.0
2017-05-16T03:02:48.497
34744
2017-05-16T03:02:48.497
5750
34742
answer


各`Command`クラスには`CreateParameter()`メソッドが用意されています。どのパラメータークラスを使うかに悩むようでしたら、こちらを利用したほうが確実です。なお

  * [`OracleCommand.CreateParameter()`メソッド](http://docs.oracle.com/cd/E77579_01/win.121/e72575/OracleCommandClass.htm#i998335)は`OracleParameter`クラスインスタンスを返します。
  * [`SqlCommand.CreateParameter()`メソッド](https://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlcommand.createparameter\(v=vs.110\).aspx)は`SqlParameter`クラスインスタンスを返します。

となっています。

これとは別に、ADO.NETは[ファクトリモデル](https://msdn.microsoft.com/ja-
jp/library/cy5kfe3c\(v=vs.110\).aspx)が導入されています。このファクトリモデルで提供される`DbConnection`、`DbCommand`、`DbParameter`という抽象クラスを用いることで特定のデータベースエンジンに依存しないコーディングも可能です。


CC BY-SA 3.0
2017-05-16T04:39:38.330
34746
2017-05-16T04:39:38.330
4236
34742
answer