none
Datenbankabfrage MySQL unter VB RRS feed

  • Frage

  • Guten Abend,

     wie müsste eine MySQL Abfrage in VB2010 ausehen, wenn ich 2 Tabellen nach folgenden Schema habe:

    Tabelle1           Tabelle2

    ID                    Nr

    Projekt             ID

    Laufzeit            Personenname

     

    und ich z.B. in Tabelle1 für eine ID=25, alle Datensätze aus Tabelle2 wo die ID auch gleich 25 ist aber mehrfach auftreten kann(muss auch so sein) aussehen. In Tabelle1 ist der PK = ID, in Tabelle2 wäre der PK = ???? wie muss ich den setzen?

    ich habe es jetzt mit:

    da3.SelectCommand.CommandText = "SELECT * FROM beraterzuordnung,benutzer where beraterzuordnung.ID = benutzer.ID" 

    probiert. Nur Zeigt er mir dann im DGV in einer Zeile sowohl alle Daten  aus beraterzuordnung (Tabelle2) und direktdahinter alle Daten aus benutzer(Tabelle1). Möchte aber nur die Daten aus beraterzuordnung sehen.

     

    Danke
    Montag, 7. März 2011 20:25

Alle Antworten

  • Hallo,

    wenn Du * im SELECT verwendest, bekommst Du auch alle Felder. Über Tabelle.* bekommst Du "nur" alle Felder aus einer Tabelle. Noch besser ist es immer, wenn man die benötigten Felder explizit angibt. Folgendes liefert alle Felder aus beraterzuordnung (mit Alias BZ):

    SELECT BZ.*
    FROM beraterzuordnung AS BZ ,benutzer AS B
    where BZ.ID = B.ID

    Wenn Du eh nur die Werte aus beraterzuordnung zu einer ID haben willst, warum filterst Du mit WHERE nicht gleich darauf, benutzer kannst Du dann weg lassen, wenn Du die Werte daraus eh nicht benötigst.

     


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Montag, 7. März 2011 20:42
  • Ok, das habe ich verstanden. Für mich würde dann tatsächlich WHERE ausreichen. Jetzt hängt er jedoch im SQL Syntax. Ich habe es so geschrieben:

     

    da3.SelectCommand.CommandText = "SELECT * FROM beraterzuordnung where ID =" & TextBox14.Text

     

    Ist das OK?

    Montag, 7. März 2011 20:52
  • Hab es geändert:

    da3.SelectCommand.CommandText = "SELECT * FROM beraterzuordnung where ID ='" & TextBox14.Text & "'"

    Danke

    Montag, 7. März 2011 20:59
  • Wenn Id ein numerischer Datentyp ist, kannst Du die einfachen Hochkommas weg lassen, wenn es vom Type varchar (alphanumerisch) ist, musst Du sie verwenden.

    Besser noch: Verwende Parameter, das erspart viel Ärger. Einstiegspunkt siehe http://msdn.microsoft.com/de-de/library/system.data.sqlclient.sqlparameter.aspx, zu MySql.Net wird es analoges geben und auch eine Doku dazu zu finden sein.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Montag, 7. März 2011 21:21