Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
VB.Net in C#
Joerg
myCSharp.de - Member



Dabei seit:
Beiträge: 152

Themenstarter:

VB.Net in C#

beantworten | zitieren | melden

Hallo
Ich soll nun mein Prog von VB.NET in C# umschreiben.
Leider habe ich speziell bei dem unten angezeigtem Code mit dem Umschreiben Probleme.

Public Function parameter(ByVal sqlbefehl, ByVal paraFeld)
Cn = New OdbcConnection(sCn)
Dim anzahl As Integer
Dim wert
Cn.Open()
cmd = New OdbcCommand(sqlbefehl, Cn)
dr = cmd.ExecuteReader
If dr.HasRows Then
Dim discreteParam As New ParameterDiscreteValue
Dim paramField As ParameterFieldDefinition
Dim currentValues As ParameterValues
Dim defaultValues As ParameterValues
mit der nächsten Zeile gibt es Probleme,da in C# der Eigenschaftsname Item nicht verfügbar ist!!!!
paramField = oRep.DataDefinition.ParameterFields.Item(paraFeld)
Do While dr.Read
Try
If wert = dr.Item(0) Then

Exit Try
Else
If paraFeld = "Tournr" Then
discreteParam.Value = CType(dr.Item(0), Integer)
Else
discreteParam.Value = dr.Item(0)
End If
wert = dr.Item(0)
End If
defaultValues = paramField.DefaultValues
defaultValues.Add(discreteParam)
paramField.ApplyDefaultValues(defaultValues)
Catch ex As Exception
pruef.protokollieren(ex.Message, sqlbefehl, paraFeld)
Exit Do
End Try
Loop
dr.Close()
End If
Cn.Close()
End Function

In der Hilfe steht nur dazu ich solle eine der folgenden Syntaxbeispiele verwenden!
collection[0]
collection["Item Name"]
collection["Iten Name", "Report Name"]

Zum jetzigen Zeitpunkt hilft mir das aber nicht!

Gruß Jörg
private Nachricht | Beiträge des Benutzers
Pulpapex
myCSharp.de - Member



Dabei seit:
Beiträge: 962
Herkunft: Rostock

beantworten | zitieren | melden

Auf die Item-Eigenschaft wird in C# in Indexer-Schreibweise zugegriffen. Also Item kommt ganz weg und wird durch eckige Klammern ersetzt.

paramField = oRep.DataDefinition.ParameterFields[paraFeld];

Gruss
Pulpapex
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Joerg,

es müsste immer so gehen, dass du '.Item' weglässt und die runden Klammern dahinter durch eckige ersetzt:


paramField = oRep.DataDefinition.ParameterFields [paraFeld]
herbivore
private Nachricht | Beiträge des Benutzers
suny
myCSharp.de - Member



Dabei seit:
Beiträge: 127
Herkunft: Thüringen

beantworten | zitieren | melden

Benutze doch #develop Link zur Seite.

Das kann deine VS Solution importieren und dann von VB nach C# übersetzen. Und diesen Code auch wieder als VS Solution exportieren. Dann brauchst du nicht mehr soviel nachdenken, sonder kannst dich dann auf das Testen des übesetzen Codes konzentrieren.

Der Konverter nutzt bei #develop Reflection und kann so fast Fehlerfrei übersetzen.
private Nachricht | Beiträge des Benutzers
Joerg
myCSharp.de - Member



Dabei seit:
Beiträge: 152

Themenstarter:

VB.NET in C#

beantworten | zitieren | melden

Hallo
das ging aber schnell!!!
klappt alles!
Danke!

Gruß Joerg
private Nachricht | Beiträge des Benutzers