- - PR -
DbCommandへの型変換でエラー
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-05-07 13:10
お世話になってます。
新規にVS2005のMobile5.0プロジェクトを作成したのですが、Factoryクラスが使えないということで自前で作ろうかと思ったのですが、Webプロジェクトなどでは普通に使っていた以下のコードがコンパイルエラーとなってしまいます。 DbCommand cmd = new SqlCommand(); エラーメッセージ:Cannot implicitly convert type 'System.Data.SqlClient.SqlCommand' to 'System.Data.Common.DbCommand' もちろんこれもエラーです。 DbCommand cmd = (DbCommand)(new SqlCommand()); System.DataとSystem.Data.SqlClientアッセンブリの参照はされています。 Compact Framework 2.0もインストールされています。 何が問題であるのか、どなたかご教授いただけませんでしょうか。 | ||||||||
|
投稿日時: 2007-05-07 13:33
Imports 文
| ||||||||
|
投稿日時: 2007-05-07 13:39
以下のNamespaceを参照しています。Namespaceの参照がない場合は「○○が見つかりません」のエラーになるので、understoodとして省略してしまいました。すみません。(Imports文の意味はこれでよかったですよね??) using System; using System.Data; using System.Data.SqlClient; using System.Data.Common; | ||||||||
|
投稿日時: 2007-05-07 13:52
C# でしたね。ごめんなさい。 「using System.Data.SqlClient;」を消してみてもダメでしょうか。 #以下、追記。 なんかバカなこと言ってますね>俺 要は、どうして「DbCommand」と「SqlCommand」を混在しているのかってことです。 どっちかに統一すれば済む話だと思います。 [ メッセージ編集済み 編集者: ひろれい 編集日時 2007-05-07 13:58 ] | ||||||||
|
投稿日時: 2007-05-07 13:56
ありがとうございます。 「using System.Data.SqlClient;」を消すとやはり、「SqlCommandが見つかりません」、と、全てのSqlClient内のクラスを使用している部分でコンパイル・エラーになってしまいます。 [ メッセージ編集済み 編集者: Furi2 編集日時 2007-05-07 13:57 ] | ||||||||
|
投稿日時: 2007-05-07 14:15
System.Data.IDbCommand あたりに代入したらどうなります?
モバイルだと何かあるのかな? _________________ かるあ のメモ と スニペット | ||||||||
|
投稿日時: 2007-05-07 14:24
ありがとうございます! ご提案のように、以下のようにしたところ、コンパイル・エラーが消えました。元の方法でなにが駄目なのか疑問は残るのですが。。 IDbCommand icmd = new SqlCommand(); DbCommand cmd = (DbCommand) icmd; [ メッセージ編集済み 編集者: Furi2 編集日時 2007-05-07 14:25 ] | ||||||||
|
投稿日時: 2007-05-07 14:30
なぜキャストできないのかは僕もわかりませんが これ DbCommand に入れる必要ってあるんですか? インターフェイスのまま処理しちゃっていい気がする。 _________________ かるあ のメモ と スニペット |