2016-08-11 1 views
0

Hallo Ich habe versucht, eine App zu konvertieren, ich muss C# und ich habe auch einige Tools da draußen verwendet, um mir eine Basis zu geben, mit zu arbeiten. Ich benutze ADODB und als Ergebnis, was in VB.NET funktioniert habe, kann ich nicht in C# arbeiten.Konvertieren von VB.NET ADODB zu C#

Der Fehler, den ich bekomme, ist fast der gleiche Fehler beim Aufruf von zwei bestimmten Methoden im ADODB.Command-Objekt.

Ich habe die folgende Erklärung

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

dann verwende ich das ADODB-Befehlsobjekt ObjCommand entweder die Verbindung zu öffnen oder die Abfrage/Prozedur ausführen.

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

objCommand.Execute(); 

und

rs = objCommand.Execute(); 

beides nicht zu funktionieren scheint, und ich bekomme die folgenden Fehler

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

und

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

kann jede Stelle mir helfen, wie ich bin neu zu C# und ich frage mich, ob ich mi habe eine eklatante Tatsache, die VB.NET verbirgt.

Antwort

-1

Wenn Sie sich die documentation for connection anschauen, werden Sie sehen, dass sie 4 Parameter hat, die alle optional sind. In C# optional wird jedoch nicht unterstützt. Sie müssen also herausfinden, was Sie anstelle jedes dieser Parameter übergeben müssen, um es anzuweisen, sein Standardverhalten auszuführen. Ich vermute, dass die Verwendung von null an vielen Stellen damit umgehen wird.

+2

https://support.microsoft.com/en-us/kb/308611 hat ein Beispiel – Ralf

+0

Was meinen Sie "optional wird nicht unterstützt" - C# hat seit Jahren optionale Parameterunterstützung. –

+0

@DaveDoknjas - Entschuldigung, optional wurde nicht unterstützt. Daher sind alle Parameter, obwohl sie als optional gekennzeichnet sind, obligatorisch, wenn sie über C# aufgerufen werden. – FloatingKiwi