MySQL接続を使用するVB.Netプログラムがあります。
コードをきれいにして再利用できるようにするために、すべての機能を持つクラスDBManager
を作成しました。
私は別のプロジェクトでこのクラスを作ったので、近い将来このクラスからスタンドアロンDLLを取得する予定です。
今私のメインプログラムは単純にインポートするDBManager
DBManager
の関数の1つに、タイプMySqlCommand
の引数が必要です。
私はDBManagerの上にMySql.Data.MySqlClient
をインポートしましたが、今では私のメインプログラムからタイプ(またはもっと良いクラス)MySqlCommand
にアクセスできません。
可能な回避策は、私のメインプログラムにMySql.Data.MySqlClient
をインポートすることですが、私は私はちょうど引数としてMySqlCommand
を使用するための全体のMySQLの名前空間をインポートするので、それはきれいな解決策ではないと思います.... MySqlCommand
を取得するためのクリーナー方法がありますクラスをDBManager
からインポートしないで、メインプログラムにMySql.Data.MySqlClient
をインポートしますか?アクセスクラスのインポートクラス
0
A
答えて
0
私はjmcilhinneyの提案に基づいて解決策を見つけました。
私はクラスをとPublic Parameters As SortedList(Of String, String)
の2つのパブリック変数で作成しました。これはパラメータを挿入するのに必要なaddメソッドをサポートしています。
次に、メソッドの引数型をDBSqlCommand
に変更しました。
私のメソッドを呼び出すと、MySqlCommandが内部的に処理され、リストがコマンドパラメータに変換されます。
関連する問題
- 1. インポートクラス
- 2. アクセスクラス
- 3. ローカルフォルダのPythonインポートクラス
- 4. JavaScriptのエクスポート/インポートクラス
- 5. GUIDのアクセスクラス
- 6. mixinのアクセスクラス名
- 7. インポートクラス変数のpython
- 8. インポートクラスのカントコール関数
- 9. ツイストloopingcallのアクセスクラスは
- 10. Rubyアクセスクラスの変数
- 11. アクセスクラス変数 - ジャンゴ
- 12. PHP - アクセスクラス変数
- 13. 他のプロジェクト/モジュールのTypeScriptインポートクラス?
- 14. 同じフォルダ内のScalaインポートクラス
- 15. 定義ファイルのインポートクラス(* d.ts)
- 16. 他のクラスのWebpackアクセスクラス
- 17. アクセスクラスの静的変数
- 18. Haxe:ビルドマクロでContext.getLocalClass()のアクセスクラス
- 19. クラス内のObjective-Cアクセスクラス
- 20. jnaラッピング共有.soライブラリ - アクセスクラス
- 21. 推移従属からのインポートクラス
- 22. dictの形式のアクセスクラスのプロパティpython django
- 23. 私のモジュールに別のモジュールのアクセスクラスtypescript
- 24. アクセスクラスのパラメータ私は必要なもの
- 25. C++でのアクセスクラス変数の使い方
- 26. Javaのメソッドで定義されたアクセスクラス
- 27. Angular2:匿名関数内のアクセスクラス変数
- 28. パラメータ化された型のアクセスクラス名
- 29. PHP - アクセスクラスのメソッドから関数
- 30. 親ウィンドウのmootoolsを使ったアクセスクラス
これは回避策ではありません。それは必要な解決策です。そのメソッドがその型のパラメータを必要とする場合、アプリケーションはその型が存在することを知る必要があり、それを行う唯一の方法は、その型が宣言されているライブラリを参照することです。その周りに方法はありません。 'MySqlCommand'を期待するのではなく、SQLコードを含む' String'とパラメータ値の 'Dictionary'を期待し、コマンドオブジェクトを内部的に構築する方法を書いてみましょう。消費しているアプリが 'MySqlClient'について知っている必要がない場合は、その名前空間の型を公開しないでください。 – jmcilhinney
こんにちは、あなたはjmcilhinneyをthaks、私はAddWithValueメソッドを使用するために、MySqlCommand型を使用しました。私はMySqlCommandの代わりにこのカスタムクラスを使用するためにMySqlCommandが行うことを正確にコピーするクラスを作成することが可能かどうか疑問に思っています。そうでなければ文字列を使用しようとします –
メソッド内で単に 'AddWithValue'を使用してください。 – jmcilhinney