IDE löscht Verbindungszeichenfolge

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    IDE löscht Verbindungszeichenfolge

    Hallo Gemeinde,

    hab folgendes Problem. Seit etwa 3 Tagen ist meine IDE (VB 2010 Pro) nervig.
    Ich kann im Design-Mode eine Verbindungszeichenkette in den Anwendungseinstellungen erstellen.
    Die wird auch angelegt und ich sehe sie kurze Zeit. Doch nach 2 bis 3 Sekunden nach dem Speichern der Einstellungen
    läuft irgen etwas los und löscht mir den Wert der Einstellung wieder weg.
    "Benutzer" - Einstellungen bleiben erhalten.

    Wer hat sowas schon mal gehabt und konte es wie beseitigen?

    Danke im Vorraus.
    Ja, die IDE spinnt manchmal, wenn die Strings zu lang werden.
    Mach solch Zuweisungen in der Form_Load.
    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!
    Danke für die Antwort. Aber was macht dann der Datenbandesigner.
    Ich kann noch nicht mal meine DataTabls im Dataset anpassen.
    Ich hab ein Feld zu einer Datenbanktabelle hinzugefügt. Wie sage ich der DataTable wie das Feld aussieht...

    Tücken bei der Bindung von Zellen an Controls

    Hi,
    sowas passiert meist dann, wenn Du die Zelle, in der die Verbindungszeichenfolge steht, in irgendeinem Textfeld als Controlsource eingetragen hast.
    Das Control hat dann die Hoheit über die Zelle und Du kannst sie eigentlich nicht mehr verwenden.
    Um das zu vermeiden, solltest Du die Kommunikation zwischen Zelle und Control lieber selbst durch Zuweisung steuern.
    Hallo Dieter,

    hab gestern Abend alles durchgesehen. Daran kann es nicht liegen.
    Ich habe dann mal eine weitere Verbindung eingerichtet. Auch diese wird nach dem Speichern der Einstellungen geleert.
    Die Wertezelle der neu eingerichteten Verbindung dürfte somit auch nicht mit irgend einem Control verknüpft sein.

    Ich werde heute mal die IDE neu installieren. Vll. hilft das ja.

    ...mach's Dir leicht; lager das Zeug aus.

    Ich habe in meinen Projekten immer ein EXCELBlatt "Parameter".
    darin steht aufgelöst:

    Provider=SQLOLEDB.1;Password=1.Pur#721;Persist Security
    Info=True;User ID=sa;Initial Catalog=LBL;Data Source=Localhost

    Als Formel sieht das so aus:

    ="Provider="&INDIREKT(VERKETTEN(Konfig_Set;"Provider"))&";Password="&INDIREKT(VERKETTEN(Konfig_Set;"Password"))&";Persist Security Info=True;User ID="&INDIREKT(VERKETTEN(Konfig_Set;"UserID"))&";Initial Catalog="&INDIREKT(VERKETTEN(Konfig_Set;"Catalog"))&";Data Source="&INDIREKT(VERKETTEN(Konfig_Set;"DataSource"))

    In dem benannten Bereich "KonfigSet" steht entweder "P1_" (Kundenumgebung) oder "P2_" (Testumgebung) und die benannten Zellen heißen dann "P1_Provider" (oder eben "P2_Provider"),
    "P1_UserID" usw.

    Im Sourcecode verwende ich dann:
    Public Sub GetCustomerData()
    Dim con As New Connection
    con = [DB_Connect_String] 'hier steht der ConnectString aus dem EXCELBlatt "Parameter"
    Dim rec As New Recordset
    Abfrage = [SQL_CustomerData] '...und -war klar- hier der SQL String aus dem ExcelBlatt
    [test] = Abfrage 'Benannter Bereich für das DebugControl
    rec.Open Abfrage, con
    If Not rec.EOF Then
    ...
    Ich habe alle SQL Statements variabel gestaltet und in das Parameterblatt ausgelagert.

    Wenn Du ohne EXCEL arbeitest, kannst Du das ähnlich machen indem Du zuerst ein Text-, XML- oder auch ein UDL-datei einliest. Die UDL legst du einfach als neue Datei über den Desktop (rechte Maustaste neu...) als weißnichtgenau.UDL an und trägst mit Doppelklick dann die SQL Connect Parameter ein. Die UDL Datei enthält danach den Connect String und lässt sich via VB auslesen.

    Herzlichst, Dieter

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Dieter Reimann“ () aus folgendem Grund: 1.) Rechtschreibfehler 2.) Denkfehler

    Danke für die Antwort,

    dies ist ein guter Ansatz um Daten aus der DB in EXCEL zu bekommen.
    Bleibt immer noch das Problem, das ich in der IDE nicht auf die in verschiedenen UserControls
    gebundenen Daten zugreifen kann.

    Immer wenn ich in den Anwendungseinstellungen eine Verbindungszeichenfolge einrichte bleibt sie für ca. 3-4 sec stehen.
    Danach ist die IDE der Meinung dieser Verbindungszeichenfolge den Wert "" zuweisen zu müssen.

    ?(

    EDIT:

    Um das noch etwas zu präzisieren:

    Ich verwende zum Erstellen der Verbindung den Assi:

    siehe Dateianhang

    Trotz erfolgreichem Verbindungstest bekomme ich im Fenster "Fehlerliste" kurzzeitig die Meldung "Syntaxfehler in Settings.Designer.vb" und danach
    ist der Wert der Verbindung leer.
    Bilder
    • SQLVerbindung.png

      30,78 kB, 451×674, 131 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „strippe@vb-paradise“ ()

    Für mich gilt, ich muss mich nicht -jedem- Problem stellen...

    ... manche ignoriere ich nichteinmal.

    Guten Morgen,
    mit ist Dein Problem schon klar; wenn man da bei einigen Leuten im Forum zwischen den Zeilen liest, drängst sich der Verdacht auf, dass es sich um eine Bug handelt. Sowas hat letztlich Konsequenzen für die Zuverlässigkeit, oder?

    Der Denkansatz dazu wäre also: was würde ich tun, wenn die Möglichkeit der Hinterlegung einer Verbindungszeichenfolge NICHT gegeben wäre.

    Die erste positive Konsequenz wäre, dass ich in der Zuweisung der Verbindungszeichenfolge inhaltlich uns zeitlich gesehen vollkommen frei bin.

    Hinzu kommt, dass Du einem neuen Benutzer (oder Admin), das System-Control für *.UDL Dateien als PopUp anbieten kannst, damit es auf den Ziel-PC (mit Möglichkeit zum Verbindungstest) den Connect-String zusammenbaut.

    Nicht ganz unwichtig schein mir schließlich noch die Option, dass du auch problemlos mehrere Connect-Strings verwenden kannst (Backup, Kommunikation, Sync, Webshop, Smartphone-Portal etc)

    Und ..... Du musst dich nicht mit dem Bug rumärgern.

    Herzlichst,
    Dieter

    PS
    ...eins noch, wenn das wirklich an der IDE liegt; gibt es da eine Alternative?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Dieter Reimann“ () aus folgendem Grund: was vergessen...

    Ich kann deinen Fehler nicht reproduzieren, aber probierma, ob du die angehängte Solution starten kannst.
    Wenn ja, gilts zu untersuchen, warum deine nicht - ein Bug ist dann eher unwahrscheinlich

    Aber probiers ernsthaft, nicht gleich bei der ersten Warnung aufgeben - die Konvertierung von 2010 nach 2012 ist auch immer problematisch, da wäre erst noch mit den Kompilier-Optionen rumzuprobieren.
    Dateien
    • QuickOle12DB.zip

      (300,8 kB, 117 mal heruntergeladen, zuletzt: )
    Danke für das kleine Projekt.
    Es lies sich problemlos starten. Nun teste ich noch etwas dran rum.
    Der Fehler tritt hier nicht auf.
    Als Nächstes werde ich in Meinem Projekt weiterforschen welche Komponente das Problem verursacht.
    Die IDE kann ich jetzt ja ausschließen.

    Ich melde mich mit den Ergebnissen dann wieder.
    Danke an alle die mir hier geholfen haben.

    Ich habs glaub icgh stabil wegbekommen.
    Ich habe alle DataSets aus meinem Projekt entfernt und wieder neu erstellt. Einse dieser DataSets hatte eine
    falsche Verbindungszeichenkette ...(MySettings)1 in Verwendung. Diese gab es aber nicht mehr.

    Jetzt läufts wieder. Besten Dank @ "ErfinderDesRades".

    Werde das Thema dann schließen.

    Mein vorheriger Beitrag war nicht die ganze Lösung.

    Mein vorheriger Beitrag war nicht die ganze Lösung.

    Ein weiteres Problem war eine offensichtlich falsche "ApplicationSettings/PropertyBinding" Zuordnung.
    Ich habe an eine Schaltfläche eine Anwendungseigenschaft angehängt. Der Designer erstellt dann zwar den Code dafür.

    VB.NET-Quellcode

    1. Dim MySettings1 As Global.Auktionsverwaltung.My.MySettings = New Global.Auktionsverwaltung.My.MySettings()


    und am Control dan das hier:

    VB.NET-Quellcode

    1. MySettings1.aktAbrechnungID = 0
    2. ...
    3. MySettings1.aktVerbindung = <irgendeine Verbindungszeichenkette>
    4. MySettings1.temp = "12324"


    wurde jetzt die Schaltfläche verändert und gespeichert trat immer ein Fehler "Die Eigenschaft "aktVerbindung " ist ReadOnly."
    Danach wurde sie auf Nothing gesetzt

    VB.NET-Quellcode

    1. MySettings1.aktVerbindung = Nothing


    was natürlich die Zeichenkette auch in den Anwendungseigenschafte geleert hat.
    Durch erneutes zuordnen der "ApplicationSettings/PropertyBinding" wurde der korrekte Verweis in der Form

    VB.NET-Quellcode

    1. Me.chbAutoFillColumns.DataBindings.Add(New System.Windows.Forms.Binding("CheckValue", Global.MyApplication.My.MySettings.Default, "aktAutoFillColumns", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged))


    Damit wird nur der einzelne Wert gebunden.

    Seit dem läufts wieder.
    immer feste Backup machen. Grad wenn viel in Designern erstellt ist, dann geht auch viel verloren, wenn sich son Designer mal verdaddelt.
    Und das passiert rel. leicht, wennman Bindings eingerichtet hat, und nachträglich noch was herumverändert.

    gugge SolutionExplorer wegen Backup

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()