Frage zu SQL Befehl in VB 2010

  • VB.NET

Es gibt 76 Antworten in diesem Thema. Der letzte Beitrag () ist von sonne75.

    Arghhh im Buch von O'Reilly find ich dazu nüscht :(

    Ich find die Stecknadel vor lauter Stecknadeln nicht :(

    Komm ich mit einem WITH weiter ? Nur eine Vermutung...

    Klammern ????? Also so :

    Visual Basic-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. Try
    3. con.Open()
    4. cmd.CommandText = ("SELECT * FROM dredger WHERE (eo1 = '" & ComboBox1.Text & "' OR eo2 = '" & ComboBox1.Text & "' OR eo3 = '" & ComboBox1.Text & "' OR eo4 = '" & ComboBox1.Text & "' OR eo5 = '" & ComboBox1.Text & "' ) AND (beweg1 = '" & ComboBox4.Text & "' OR beweg2 = '" & ComboBox4.Text & "' OR beweg3 = '" & ComboBox4.Text & "') AND (eg1 = '" & ComboBox3.Text & "' OR eg2 = '" & ComboBox3.Text & "' OR eg3 = '" & ComboBox3.Text & ") ';")
    5. reader = cmd.ExecuteReader
    6. Do While reader.Read
    7. TextBox1.Text = reader("tech")
    8. Loop
    9. reader.Close()
    10. con.Close()
    11. Catch ex As Exception
    12. con.Close()
    13. MsgBox(ex.Message)
    14. End Try
    15. End Sub

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

    Bevor wir übermorgen noch das selbe Spiel spielen :D

    (Katze OR Hund OR Maus) AND (Win7 OR Win8 OR WinXP) AND (Wurstsemmel OR Bier OR Wasser)

    zum Abschluss noch:
    Dir wurde gesagt
    Das ist alles Gefrickel - ist Dir schon klar?

    und du als bald obergeiler BA sagst sowas
    Ja Hehe Das ist aufjedenfall gefrickel. Aber so lange es funktioniert =)

    Da Frage ich mich wo dieser BA und Master Kram hinführen soll wenn Leute mit so einer Einstellung da durchkommen.....
    Ist keineswegs bös gemeint, denk einfach drüber nach und denk auch drüber nach wieso sich wirklich gute Leute wie @ErfinderDesRades
    von deinem Problem verabschieden......Ich geb dir eine Tipp, weil du so rüberkommst als willst du es garnicht verstehen sondern
    willst einfach nur die Prüfung damit sie dir anschließend nur weil du den Titel hast Geld nachwerfen.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

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

    Halt mal die Kirche im Dorf Snaptu !

    Ich bin kein Informatiker und suche lediglich Hilfe damit was funktioniert,
    du obergeiler sonst was.

    Meine Kompetenz in Frage zu stellen auf Grund dieser Datenbank ist ja mal mehr als schwach, darüber solltest du dir mal Gedanken machen ...

    Zur Info :

    Das Programm ist nur ein Bonus, garnicht gewollt in meiner Ausarbeit !


    @diylab

    Single Malt, bin ich für Ardbeg!

    DonQuijote schrieb:

    Ich habe knapp 1200 Datensätze also so Kleinkram ist das wieder nicht. Außerdem wollte ich eh das lernen und ich bin ja schon auf einem guten Weg.
    Doch, das ist Kleinkram.
    Man kann anfangen, über Dbs nachzudenken, wenn die Größe des gespeicherten Datasets - wasweissich - 20 MB überschreitet. Das sind vlt. - die Schätzungen streuen natürlich enorm - 20000 Datensätze.
    Also da kann man dann anfangen, es zu überlegen - muss aber nicht.
    Ich empfehle, immer erst ohne DB zu entwickeln, schon weil üblicherweise das Datenmodell sich noch mehrfach ändert, und das ist ein Mords-Zinnober, wenn man da auch die Db mit umwursteln muss.
    Und für Anfänger empfehle ich das ganz besonders, denn es ist kaum zu stemmen, sich gleichzeitig in Db-Zugriffe und typisiertes Dataset einzuarbeiten.
    Vor allem ist diese multiplizierte Komplexität auch gar nicht nötig, wenn man richtig einsteigt: Datenbänkerei-Einstieg und weiterführende Links.

    Man siehts ja schon: Du hast schon eine Oberfläche gebastelt, aber noch keine Ahnung von Databinding. Weil richtig aufgezogen gestaltet man erst die Daten, und dann zieht man die im Designer aufs Form und Oberfläche gestaltet ist.
    (Ist natürlich dann noch gar nicht gestaltet, aber alle Controls sind schonmal da, fertig angeschlossen, und man kann sie hinschieben, wie man sie braucht)
    Folge wirklich mal den weiterführenden Links des gegebenen Links.
    Das war von dir etwas überspitzt findest du nicht ?

    Und es liegt mir fern nach diesem Kredo "Wurscht obs richtig ist hauptsache es geht und ich komme durch sehr weit?" zu leben, mir fehlt nur gerade etwas die Zeit es im Quelltext ästhetisch zu halten. Solche Unterstellungen solltest du meiden wenn du dein Gegenüber garnicht kennst. Ein wenig mehr Empathie und Verständniss wäre da wohl nicht fehl am Platz. Trotz allem finde ich Datenbanken geil und werde mich da sicher bei Zeit weiter bilden.

    @ErfinderDesRades

    Danke für deine hilfreichen Tips, das alles was ich bis jetzt da zusammen gebastelt habe dient mir nur der Übersicht. Selbsverständlich kümmere ich mich erst um die Datenbank. Nur wenn man keine Übersicht hat wie was funktionieren kann oder soll, woher soll ich dann wissen auf was ich acht geben muss. Immerhin ist das ja auch die Quintessenz warum ich mich hier angemeldet habe.

    Ich arbeite mich mal in die Links ein und hoffe dass sich dort eine Abfrage wesentlich einfacher gestaltet

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

    wie gesagt: du brauchst keine Datenbank.
    Folge doch bitte bitte mal den gegebenen Links und versuche den Gedanken zu folgen, die zu dem unerhörten Ergebnis kommen:

    Datenbänkerei braucht mitnichten immer eine Datenbank!

    Folge den Gedanken, die darauf führen, dass man die Datenbänkerei im Gegenteil besser erlernt, wenn man zumindest zunächstmal ohne DB entwickelt!

    Ja, ich weiß, das ist ein so unerhörter Gedanke, dass es nur wenige gibt, die ihn bereits verstehen, wenn man es ihnen nur einmal sagt.

    Aber der Gedanke ist zwingend logisch, wenn man unter Datenbänkerei Ado.Net versteht - also die Standard-.Net-Technologie mit den typisierten Datasetsen.
    Denn Ado.Net sieht vor, als erstes mittels DataAdaptern Daten aus dem völlig fremden Sql-Kontext herauszuholen und im OOP-Kontext von .Net in ein typDataset zu laden. Also als allererstes das im .Net kontext unhandhabbare in .Net-Kontext überführen, und nur dort die eiglcihe Verarbeitung zu leisten, und anschließend wieder zurückschicken.
    In Ado.Net tauchen Datenbanken also nur als Daten-Senken auf, also Dokument laden, bearbeiten, abspeichern.

    Und diese 3 Dinge - Dokument laden, bearbeiten, abspeichern - kann das typDataset auch ohne DB, einfach mit einer Zeile Code:

    VB.NET-Quellcode

    1. myDataset.WriteXml(filePath)

    Wieviele Stunden sitzt du schon an deiner Datenbank?
    Und hast noch gar nicht angefangen, denn die Datenverarbeitung findet ja im typDataset statt.
    Hast du den weiterführenden Link "4 Views" mal angeguckt? Dort wird gezeigt, wie Datenverarbeitung in ado.net programmiert wird.
    Aber es kotzt mich eiglich an, dass ich so oft drauf hinweisen muss, dass man meine Hinweise auch mal angucken soll.
    Ja hab ich angeschaut,

    nur war ich in dem anderen schon so tief drinne und ich davon ausgegangen bin das 1200 Daten doch schon ne Menge sind dass ich die Spur nicht weiterverfolgt habe. Habe mir das dataSet schon erzeugt und versuche jetzt erst einmal ein paar Daten ohne eine Datengeneriermethode in das DataSet zu bekommen. Da bleib ich am Ball. Ich hoffe ich schaff das heute und die Tage.

    ja, damit kannst du doch schon einen einfachen ParentchildView (Technologie->datenbank) bauen (wie in 4Views gezeigt), und dann kannst du auch schon Daten eingeben.

    Mir stößt halt die schwammige Benamung auf: ein Dataset mit dem nichtssagenden Namen dataset, und darin eine Tabelle mit dem sogar irreführenden Namen Datenbank - da fängts gleich an, dass das Datenmodell sich noch verändert während der Entwicklung.

    Für welchen Problemkreis zu bearbeiten schreibst du das Programm? So soll das Dataset heißen.
    Was sind das für Sachen, die in die derzeit "Datenbank" genannte Tabelle kommen? Es kommen doch keine Datenbanken hinein, oder?


    ähm - mir schwant grade, dass eben doch Datenbanken reinkommen, dein Dataset könnte also "TechnoRechercheDts" heißen, und sich mit Technologien und Datenbanken zu diesen Technologien beschäftigen - vielleicht - ist jetz so dahin-geraten.
    Die schwammige Benamung rührt daher dass ich erstmal verstehen will was ich da überhaupt genau mache und ich mich da mit meiner Kreativität erst zurückhalte.

    in die Tabelle kommen eben meine Daten. Im Endeffekt möchte ich am Schluss nur 6 Comboboxen haben die auf Grund der verschiedenen Parameter und durch bestätigen dann ne geeignete Technologie in ner kleinen TextBox auspuckt. Dazu ist wohl auch ne DetailView interessant.

    Eigentlich genügt mir doch dazu auch nur eine Tabelle oder ?

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

    wahrscheinlich nicht.
    Comboboxen werden eingesetzt, um diskrete Möglichkeiten komfortabel als Auswahl zu präsentieren.
    Logisch müssen diese diskreten Möglichkeiten in eigenen Tabellen angelegt sein.
    etwa in 4Views gibts Comboboxen, mit denen von einem Artikel der Lieferant ausgewählt wird, oder die Kategorie, zu der er gehören soll.

    Aber auch das ist Datenmodellierung: Du musst konkret sprechen. So abstrakt mit "gewisse Parameter" und bla - daraus kann man kein Datenmodell ableiten.
    Okey also ein Beispiel :

    Ich habe 2 Technologien ( in Wirklichkeit 21 ) aber als Beispiel sollten ja 2 genügen. Diese beide Technologien haben jeweils gleiche "Begutachungskriterien", mit unterschiedlichen Eigenschaft. Ich nenne jetzt wieder 2 unterschiedliche Begutatchungskriterien ( in Wirklichkeit sind es 6, evtl. später mehr ) :

    Begutachtungskriterium Nummer 1 = Einsatzgebiet welches sich wiederum Unterpunkte in sich trägt, veranschaulicht :

    Einsatzgebiet :
    Land
    Luft
    See

    Begutachtungskriterium Nummer 2 =

    Kraftanlage :
    Dampf
    Diesel
    Dieselelektrisch
    Dieselhydraulisch
    Gasturbine

    Jetzt hat Technologie 1 bspw. nur die Möglichkeit an Land zu operieren also :

    Einsatzgebiete Technologie 1 :
    Land

    Nun gibt es bspw. die Möglichkeit diese Technologie mit 3 verschiedenen Kraftanlagen zu betreiben, von mir aus :
    Dampf
    Gasturbine
    Diesel

    Entsprechend analog verhält es sich mit der 2. Technologie die aber jetzt ihren Einsatzgebiet auf Land und See findet :

    Einsatzgbeit Technologie 2:
    Land
    See

    und nur mit Dampf betrieben werden kann.

    Ich möchte jetzt in meiner Datenbank ( die ja hier nur aus 2 Technologien besteht ) darauf hin filtern wenn ich beispielsweise in der Combobox auswähle :

    Einsatzgebiet :
    Land
    Kraftanlage :
    Gasturbine

    mir es, hier im einfachen Fall, eben die Technologie 1 auspuckt.



    Die Oberfläche soll dann in etwa so aussehen, ohne Tabelle :


    ja, das sind m:n - Relationen:
    Du brauchst die Tabellen Einsatzgebiet, Kraftanlage, Technologie, und dann brauchst du eine Zuordnungs-Tabelle, deren Datensätze je ein Einsatzgebiet mit einer Kraftanlage mit einer Technologie verknüpfen (ForeignKeys).

    Auf diese ZuordnungsTabelle kannst du dann einen 2-fachen Filter setzen, nach KraftAnlage und EinsatzGebiet, und übrig bleiben die Zuordnungen, die eine Technologie genau dieser Combi von KA und EG zuordnen.

    Also es ist bisserl über m:n hinaus, weils m:n:o ist.
    Also DataSet erstellen und dann eben die Tabellen mit Ihren Unterschiedlichen Möglichkeiten, check?

    Dann setze ich primärschlüssel und verbinde diese über eine Zuordnungstabelle. Gibt es hierzu ein HowTo ? Und das geht auch mit Combos und mit Textausgabe usw. ?

    Danke schonmal für deine wirklich hilfreiche Hilfe

    PS : Hinzu kommen noch 4 weitere Bewertungskriterien, neben Einsatzgebiete findet sich dann so etwas wie Leistung und Produktionsrate etc. wieder
    es ist alles in 4Views gezeigt, von Adam und Eva an.
    in 4Views ists die beispielhafte m:n - Relation Kategorie->Artikel<-Lieferant

    Setz doch dasseslbe erstmal mit Einsatzgebiet->Zuordnung<-Technologie um

    weitere Kriterien-Tabellen kann man ja noch dranmachen, also Tabelle + Relation, etwa KraftAnlage->Zuordnung