Der Wert vom Typ "FUNC_DB_Connection" kann nicht in "FUNC_DB_Connection()" konvertiert werden.

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von jan99.

    Der Wert vom Typ "FUNC_DB_Connection" kann nicht in "FUNC_DB_Connection()" konvertiert werden.

    Moin!

    ich stehe gerade vor einem Problem, was ich nicht verstehe, weil ich dieselbe Vorgehensart und weise anderswo auch schon gemacht habe.



    Hier der Code dazu:

    VB.NET-Quellcode

    1. Imports System.Windows.Forms
    2. Imports Mum.Geo.DataAccess
    3. Public Class FUNC_CreateNumber
    4. ' ------ http://ma22-wiki-001/eblwiki/index.php?title=EBL_Funktionen_(MapEdit_API_Dokumentation)#FUNC_CreateNumber ------
    5. Private _Seperator As String = ""
    6. Private _connection As Connection
    7. Private _EBLog As FUNC_Log
    8. Private _DBC As EBL.MapEdit.FUNC_DB_Connection()
    9. Public Sub New(ByVal conn As Connection, Log As FUNC_Log, Format As DateFormat, Optional Seperator As String = "_")
    10. _Seperator = Seperator
    11. _connection = conn
    12. _EBLog = Log
    13. _DBC = New EBL.MapEdit.FUNC_DB_Connection(conn, _EBLog)
    14. End Sub
    15. ...
    16. Imports System
    17. Imports Mum.Geo.PlugIns
    18. Imports Mum.Geo.Client.Generic
    19. Imports XSystem
    20. Imports Mum.Geo.Client.Events
    21. Imports Microsoft.VisualBasic
    22. Imports Mum.Geo.DataAccess
    23. Imports System.Globalization
    24. Public Class FUNC_DB_Connection
    25. '------ http://ma22-wiki-001/eblwiki/index.php?title=EBL_Funktionen_(MapEdit_API_Dokumentation)#FUNC_DB_Connection ------
    26. ' in dieser Klasse wird der Zugriff auf die DB geregelt
    27. Private _EBLog As FUNC_Log
    28. Private _connection As Connection
    29. <Global.System.Diagnostics.DebuggerStepThroughAttribute()>
    30. Public Sub New(ByVal conn As Connection, Log As FUNC_Log)
    31. _connection = conn
    32. _EBLog = Log
    33. End Sub


    Sieht einer von Euch den Widerspruch und kann mir weiterhelfen?

    Gruß Jan
    In Zeile#14 wird bei New EBL.MapEdit.FUNC_DB_Connection(conn, _EBLog) als erster Parameter kein Einzelwert verlangt, sondern ein Array.
    Das ist wie

    VB.NET-Quellcode

    1. Private Function GibMirDieSummeVon(Summanden As Integer()) As Integer
    2. Dim Summe = 0
    3. For Each Summand In Summanden
    4. Summe += Summand
    5. Next
    6. Return Summe
    7. End Sub
    8. Private Sub Main()
    9. GibMirDieSummeVon(1)
    10. End Sub

    Da wird auch gemeckert, weil die Funktion ein Integer-Array will, aber man mit GibMirDieSummeVon(1) nur einen Wert/Integer übergibt. Wenn Du nur eine einzige Connection überhaupt hast, könntest Du ggf. das Problem lösen, indem Du schreibst:
    _DBC = New EBL.MapEdit.FUNC_DB_Connection({conn}, _EBLog), conn also in geschweifte Klammern schreibst. Dann sieht der Compiler das als Array mit nur einem Element an.

    ##########

    Da hab ich mich doch glatt von der Compiler-Markierung für das conn ablenken lassen X/
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Erst einmal danke für die Rückmeldung...

    VaporiZed schrieb:

    In Zeile#14 wird bei New ]_DBC = New EBL.MapEdit.FUNC_DB_Connection({conn}, _EBLog), conn also in geschweifte Klammern schreibst. Dann sieht der Compiler das als Array mit nur einem Element an.


    wie kommst Du darauf. Es wird aber nicht nach einem Array gefragt:



    Gruß Jan

    jan99 schrieb:

    VB.NET-Quellcode

    1. Private _DBC As EBL.MapEdit.FUNC_DB_Connection()
    Machst Du

    VB.NET-Quellcode

    1. Private _DBC As EBL.MapEdit.FUNC_DB_Connection
    ohne Klammern.
    Beim Aufruf des Konstruktors _DBC = New EBL.MapEdit.FUNC_DB_Connection() gehören die Klammern hin.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!