Zum Inhalt springen

[VB.NET] SQL Datenbindung


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe in Access eine Datenbank angelegt, die ich in SQL Schreibweise in Visual Basic schreiben möchte. Die SELECT...FROM...-Form habe ich schon eingetragen. Nur funktioniert es noch nicht. Ich habe ausprobiert Reader und ExecuteReader davor zu schreiben nur ist das keine Methode.

Was muss ich machen damit ich die Daten ausgelesen bekomme?

Über eine schnelle antwort wäre ich sehr dankbar! :-)

orange1

Geschrieben

Ich will die daten übertragen. nur weiss ich nicht was ich zum auslesen benutzen kann. es muss ja was vor SELECT...FROM... stehen, aber was?

ich weiss nicht ob das jez genug erklärt war weil ich nicht genau weiss wie ich das erklären soll. ich hoffe es geht auch so.

Geschrieben

Was muss ich machen damit ich die Daten ausgelesen bekomme?

Bitte einmal eine vollständige und strukturierte Problembeschreibung. Ich habe da so die Vermutung, dass Du aus VB auf eine Tabellen zugreifen möchtest:

Wo läuft das Script, innerhalb der DB? In einer anderen Anwendung?

Aber bitte wie auch alle Vorredner geschrieben haben: Bitte eine aussagekräftige Beschreibung

HTH Phil

Geschrieben

Die dll, die ich dir angehängt habe, habe ich mit Visual Studio 2003 geschrieben, du solltest sie dennoch ohne probleme einbinden können. Darin sind Methoden für SQL und Access Datenbank Verbindungen enthalten. Du kannst belibige SQL Befehle verarbeiten und ganze Objekte mit Abfrageinhalten füllen. Ich werde dir die funktionsweise kurz erläutern:

Zunächst muss du sie als COM Verweis hinzufügen.

Nun einfach ein Object mit der gewünschten Datenbankart erstellen:

Dim ConDBAc as new clsRLDB.ACCESSDB()
Als nächstes musst du die Verbindungsparameter setzten:
ConDBAc.setDBParam("C:\test.mdb")
Bei einer Access 2003 sollte dies bereits ausreichen. Und schon können wir ein Objekt mit Daten aus einer Tabelle füllen:
Dim tmpObj as Object

tmpObj = ConDBAc.rl_VonDb("select * from Tabelle")
Der Zugriff auf die einzelnen Zeilen ist ähnlich einfach:
While tmpobj.eof = false

tmpObj.fields("Feldname").value

tmpObj.MoveNext()

End While

Mit dieser Schleife kannst du nun alle Daten der Tabelle einzelt ansprechen.

clsRLDB.rar

Geschrieben

Das Problem liegt irgentwie in dem Code :

While tmpObj.EOF = False

tmpObj.fields("Erst_Formular").value()

tmpObj.MoveNext()

End While

Das Funktioniert nicht! ich weiss nicht wieso. es wird die fehlermeldung angezeigt:Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden. & COM Exzeption wurde nicht behandelt.

Geschrieben (bearbeitet)

du musst mit "tmpObj.fields("Erst_Formular").value" ja irgendwas machen es einer Variablen zuweisen beispielsweise.

Das Problem liegt irgentwie in dem Code :

While tmpObj.EOF = False

tmpObj.fields("Erst_Formular").value()

tmpObj.MoveNext()

End While

Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden. & COM Exzeption wurde nicht behandelt.

sei versichert, dass der code einwandfrei ist

Nur was ist denn deiner Meinung nach "Erst_Formular"? Es muss eine Spalte der Tabelle sein, die deine vorausgegangene Abfrage mit einschließt.

Ein Beispiel:

Tabelle Mitarbeiter:


ID  Name   Vorname   Abteilung

1   mo0N   blabla       IT
wenn ich jetzt
Dim tmpObj as Object

tmpObj = ConDBAc.rl_VonDb("select * from Mitarbeiter")

ausführe, kann ich mit meinem Objekt auf die Spaltennamen, ID, Name, Vorname und Abteilung zugreifen:
While tmpobj.eof = false

MsgBox(tmpObj.fields("Name").value)

tmpObj.MoveNext()

End While

Das würde mir eine MessageBox mit dem Inhalt "mo0N" anzeigen.

Bearbeitet von mo0N
Geschrieben
Bin nämlich noch anfänger im VB05

Ich würde dir nicht raten, deine Entwicklungsumgebung "VB05" zu nennen. Es gab mal ein "Visual Basic 5", das hat mit dem "Visual Basic .NET 2005", das du benutzt, aber fast nichts mehr gemein.

Außerdem finde ich, dass man um die Datenbankschnittstelle in .NET nicht noch einen Wrapper legen muss. Und man sollte auch nicht irgendwelche DLLs von irgendwelchen Personen aus dem Internet herunterladen und benutzen. Aber das muss jeder selbst wissen.

Geschrieben (bearbeitet)

@Klotzkopp

ist ja wirklich nett von dir wie du meine unterstützung hier kommentierst

Und man sollte auch nicht irgendwelche DLLs von irgendwelchen Personen aus dem Internet herunterladen und benutzen.

möchtest du mir unterstellen, dass ich hier möglicherweise schädlichen code verbreite? wozu sind die dateianhänge sonst bitte da? außerdem hätte ich auch sofort den quelltext reingestellt wenn jemand dannach gefragt hätte

@orange1

wie machen wir das mit dem erklähren am besten? pm? icq?

Bearbeitet von mo0N
Geschrieben
möchtest du mir unterstellen, dass ich hier möglicherweise schädlichen code verbreite? wozu sind die dateianhänge sonst bitte da? außerdem hätte ich auch sofort den quelltext reingestellt wenn jemand dannach gefragt hätte

Ich schätze er meint eher, dass ein Programmentwickler sein Programm kennen sollte und keine DLLs von Drittanbietern verwendet.

Es gibt nämlich sowas wie Lizenzanspruch aber egal...

Warum eigentlich COM verwenden?! Was ist denn gegen OleDB und Konsorten zu sagen?!

Geschrieben
möchtest du mir unterstellen, dass ich hier möglicherweise schädlichen code verbreite?
Nein, ich unterstelle gar nichts. Ich habe einen allgemeinen Hinweis zum Umgang mit ausführbaren Dateien aus dem Internet gegeben.

wozu sind die dateianhänge sonst bitte da?
Du weißt schon, dass es auch nicht-ausführbare Dateien gibt?

außerdem hätte ich auch sofort den quelltext reingestellt wenn jemand dannach gefragt hätte
Warum hast du das nicht gleich gemacht? Aus deiner fertigen DLL lernt jedenfalls niemand, wie man mit der Datenbankschnittstelle von VB.NET umgeht. Beim Quellcode wäre das zumindest noch möglich gewesen.
Geschrieben
Ich schätze er meint eher, dass ein Programmentwickler sein Programm kennen sollte und keine DLLs von Drittanbietern verwendet.

Dazu wurde mir von meinem Ausbilder jahrelang ein Spruch gedrückt

Warum das Rad neu erfinden?

Ich glaube niemand schreibt Code neu wenn er ihn so problemlos und für die Anwendungszwecke dokumentiert vorgelegt bekommt. Aber wie schon gesagt muss ja jeder selbst wissen, ich fand den Post nur einfach überflüssig und habe mich ein wenig geärgert, dass ich mir so Mühe gegeben habe bei der Erklährung und dann kommt sowas.

Es gibt nämlich sowas wie Lizenzanspruch aber egal...

Wenn ich meine selbstentwickelte dll im Forum frei zum download anbiete, ist da nicht viel mit Lizensansprüchen.

Warum eigentlich COM verwenden?! Was ist denn gegen OleDB und Konsorten zu sagen?!

Ich habe dort ADODB verwendet, ist sowohl in älteren Visual Studio Versionen (bis runter zu Visual Basic 6) und in den neusten (Visual Studio 2008) zu verwenden. Ich konnte sie bisher vielseitig einsetzen und bin immer gut damit gefahren.

Geschrieben

@moON:

ja per icq wäre dann vielleicht nicht schlecht.ich bin heute abend so gegen 20uhr daheim am besten du schreibst mir deine nummer, weiss meine net auswendig, wäre sehr nett von dir mir das nochmal zu erklären :-)

@Klotzkopp:

Jeder hat eine andere Meinung würde ich mal sagen, ist nicht böse gemeint. Hast schon rest das man mit ben Code alles besser nachvollziehen kann aber ich will das jez erstmal verstehen.

Geschrieben

@Klotzkopp:

Jeder hat eine andere Meinung würde ich mal sagen, ist nicht böse gemeint. Hast schon rest das man mit ben Code alles besser nachvollziehen kann aber ich will das jez erstmal verstehen.

Wenn du das verstehen willst dann schreibste dir erst einmal eine Verbindung selber anstatt fertige DLL's zu verwenden. Und wenn es nur eine einfache ist. Später kannst du ja immer noch auf die DLL zurückgreifen. Aber solange du keine Verbindung zu einer Datenbank einmal selbst hergestellt hast, Daten abgefragt hast um diese darzustellen wirst du den Vorgang der da passiert nie richtig verstehen. Ist meine Meinung. Wenn du am lernen bist versuche sowas einmal selbst zu programmieren. Es gibt bei Google hunderte von Themen dazu!

Geschrieben
ich habe selbst die verbindung zur datenbank erstellt und programmiert

Zeig doch mal, was du schon hast. Vielleicht ist es nur eine Kleinigkeit.

Dein Code (und eventuell dazugehörige Fehlermeldungen) sind immer hilfreicher, als wenn dir hier irgendwelche Lösungen angeboten werden, die möglicherweise gar nicht auf dein Problem passen, oder die du nicht auf deine Situation anpassen kannst.

Geschrieben
Das ist viel zu viel alles hier rein zu schreiben.
Ich meinte nur den Code, der für das Problem relevant ist. Z.B. wie du die Datenbankverbindung herstellst.

ich weiss nur selbst net wie ich die ID von einem zum anderen übergebe
Welche ID, welcher "eine", welcher "andere"?

Ging es nicht darum, wie du ein SQL-Statement in VB.NET absetzt?

Geschrieben
dort habe ich den code hingeschrieben.

Welchen Code?

In dem anderen Thread geht es um ein ganz anderes Problem (wenn ich dich richtig verstanden habe). Dort findet sich aber kein Code zu deinem Datenbankproblem. Und auf die Hilfe, die du dort bekommen hast, hast du bisher auch nur mit "funktioniert nicht" reagiert.

Stell doch bitte mal klar, ob das Datenbankproblem überhaupt noch existiert. Ich werde aus deinen Erklärungen nicht recht schlau. Und ich glaube, das geht mir nicht allein so.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...