2016-08-11 5 views
0

に変換しているこんにちは私はC#のアプリケーションを変換しようとしてきましたが、そこにいくつかのツールを使用して作業する基盤を提供しました。私はADODBを使用しているので、VB.NETで何が働いていたのですか?C#で動くことができません。VB.NET ADODBをC#

エラーは、ADODB.Commandオブジェクトの2つの特定のメソッドを呼び出すとほとんど同じエラーです。

私は次のように宣言

private Connection objConnection = new Connection(); 
private Command objCommand = new Command(); 

、私はADODBコマンドオブジェクトが接続を開くまたはクエリ/プロシージャを実行するかobjCommand使用しています。

if (objCommand.ActiveConnection.State != (int) ConnectionState.Open) 
{ 
    objCommand.ActiveConnection.Open(); 
} 

objCommand.Execute(); 

rs = objCommand.Execute(); 

これらのどちらも動作するようですし、私は次のエラー

Error 1 No overload for method 'Open' takes '0' arguments 

Error 2 No overload for method 'Execute' takes '0' arguments 

を取得する私は、任意の体は私を助けることができますC#の新機能で、mi VB.NETが隠している明らかな明白な事実がありません。

答えて

-1

documentation for connectionを見ると、4つのパラメータがあり、それらはすべてオプションです。しかし、C#ではoptionalはサポートされていません。だから、デフォルトの振る舞いをするように指示するために、それぞれのパラメータの代わりに何を渡すべきかを理解しなければなりません。私は多くの場所でそれを処理するnullを使用する疑いがあります。

+2

https://support.microsoft.com/en-us/kb/308611には例があります – Ralf

+0

「オプションはサポートされていません」とは何を意味しますか?C#には何年もオプションのパラメータサポートがありました。 –

+0

@DaveDoknjas - 申し訳ありませんが、オプションはサポートされていません。したがって、オプションとしてマークされているにもかかわらず、すべてのパラメータがc#で呼び出された場合は必須です。 – FloatingKiwi