MsSql-Datenbank...HowToStart?

  • Allgemein

Es gibt 49 Antworten in diesem Thema. Der letzte Beitrag () ist von oShortyo.

    MsSql-Datenbank...HowToStart?

    Huhu liebe Paradiesvögel ;D

    Ich hab ein rießen anliegen, welches wohl für fast jeden von euch absolut bescheuert klingen mag, allerdings meine einzige Idee um voran zu kommen ist....

    Vorneweg hat man vllt bemerkt dass ich "neuling" im VB bin und bisher ausschließlich mit webentwicklung (php, html, css und JavaScript) zutun hatte...

    Zum Problem:
    Mein momentanes Vorhaben ALLE Werte in Verzeichnissen/.txt-Files zu speichern hat sich letztendlich als absoluter Bockmist entpuppt, weshalb ich nun doch auf eine Datenbank zurückgreifen muss.
    Ich hätte eigentlich noch genug Datenbanken bei All-Inkl, will aber keine davon nehmen und das erstmal mit einer lokalen MsSql-Datenbank versuchen und scheiter schon am Anfang :/

    Ich habs geschafft eine Datenbank mit fertiger Tabelle anzulegen...und nun?
    1. Ich raff davon gerade garnichts...vllt habe ich auch einen schlechten Tag erwischt...:/
    2. Wie stelle ich eine Verbindung zu dieser Datenbank her?
    3. Wie schreibe/lese ich meine Tabellen aus?

    Und bevor jemand ankommt vonwegen "les dich erstmal in VB rein bevor du was versuchst", ect...habe ich (und Videos habe ich mir auch angeschaut), allerdings bin ich eher der Typ der durch LearningByDoing vorankommt!

    Ich hoffe jemand hat mitleid mit mir und kann mir das erklären und mich nicht nur auf andere Themen oder sonstige Websites verweisen...

    lG, alex
    Hey,

    eine gute Methode, um an das Thema heranzugehen ist: Lass erstmal die Datenbank weg.

    vb-paradise.de/allgemeines/tip…ammierung-ohne-datenbank/

    Dies ist das Grundgerüst. Ob Du im Nachhinein in eine Datenbank oder XML-Datei speicherst, ist vollkommen egal. Sehr oft reicht auch die XML-Variante.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Huhu..

    Danke für die schnelle Antwort SpaceyX ...
    Das klingt ziemlich...interessant :D
    Ich werd mich mal schnell durchlesen und versuchen das ganze "klein" umzusetzen...


    //Edit: schon klappts nit...
    Habe mir dein Video (gaaaaanz unten auf erfinderdesrades.unitweb.de/Pr…r/Downloadpage/index.html) angeschaut und damit versucht...
    Dabei wird "QuickDataSet.DBSampleDataSet" importiert...
    ("Projektname.Datasetname")?
    Das wäre in meinem Fall dann wohl "MySC.SCSample"

    klappt nicht, da ich dann 2 Fehler und 1 Meldung bekomme...

    Fehler:
    1. Der Typ "MySC.SCSample" ist nicht definiert (Datei: Form1.Designer | Zeile: 56 | Spalte: 36 | Projekt: MySC)
    2. Der Typ "MySC.SCSample" ist nicht definiert (Datei: Form1.Designer | Zeile: 520 | Spalte: 44 | Projekt: MySC)


    Meldung:
    1.
    Der Designer kann Code in Zeile 55 nicht ausführen:

    Me.MySC = New MySC.SCSample()


    Der Code in der InitializeComponent-Methode wird von dem Designer erzeugt und darf nicht manuell geändert werden. Entfernen Sie alle vorgenommenen Änderungen, und öffnen Sie den Designer erneut.


    Keine Ahnung was ich falsch gemacht hab...im Video klappts, bei mir klappts nicht...

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

    kommt normal nicht vor, dass im DesignerCode falsche Typen verwendet werden.

    Das einzige, was ich mir vorstellen kann, ist, dass du eine Klasse hast, die genau so heißt, wie ein Namespace. Also dein Projekt heisst "Dingsbums", und darin erstellst du ein Form namens "Dingsbums".

    Auch ein Grund, Forms mit prefix "frm" zu benamen, etwa "frmDingsbums" wird nicht zu solch Namenskonflikten führen.

    ErfinderDesRades schrieb:

    frmMyStudentsControl.MyStudentsContolDBUser ist iwas ganz krankes.
    zeigma Screenshot von deim ProjektExplorer, wo diese Sachen zu sehen sind.


    Ich denke das sollte in diesen Thread hier rein^^
    Bilder
    • PME.JPG

      48,64 kB, 359×609, 169 mal angesehen
    Keine Ahnung, was nu wo rein soll, jdfs. zeigt dieser ProjektmappenExplorer gleich 3 Namenskonflikte:
    • ein Projekt namens "frmMyStudentsControl"
    • ein Form namens "frmMyStudentsControl"
    • irgendwas innerhalb dieses Forms, was auch "frmMyStudentsControl" heisst
      vlt. ist das auch kein Namenskonflikt, sondern iein Feature von 2013, wassichnich kenne.

    Dazu 3 Fragen:
    1. ist dir der Sinn von Prefixen inne Namensgebung klar?
    2. Warum hat dein Projekt den Prefix "frm"?
    3. Warum sollte ein Projekt überhaupt jemals einen Prefix haben?

    ErfinderDesRades schrieb:

    Keine Ahnung, was nu wo rein soll, jdfs. zeigt dieser ProjektmappenExplorer gleich 3 Namenskonflikte:
    • ein Projekt namens "frmMyStudentsControl"
    • ein Form namens "frmMyStudentsControl"
    • irgendwas innerhalb dieses Forms, was auch "frmMyStudentsControl" heisst
      vlt. ist das auch kein Namenskonflikt, sondern iein Feature von 2013, wassichnich kenne.



    Projekt selbst hab ich umbenannt, hat leider nichts gebracht...
    Jetzt gibt es also nurnoch 1x den Namen "frmMyStudentsControl"...und das ist die Form selbst.

    VisualStudio2013 hat wohl mehrere Features die einem einen Strich durch die Rechnung machen-.-

    Zu deinen 3 Fragen:
    Das Projekt selbst sollte keinen Präfix haben, war n versehen....
    ja, der Sinn ist mir klar...

    ErfinderDesRades schrieb:

    zeigste nochma Screenshot?

    Gerne...

    Das ganz oben anschaulich frm importiert wird, wurde mir grad von VisualStudio vorgeschlagen, hatte aber keine Änderungen gebracht...habs deshalb noch drinne stehen...
    Bilder
    • errall.JPG

      217,32 kB, 1.907×1.071, 148 mal angesehen
    da komme ich nochmal auf meine 3 Fragen zurück (ich muss echt noch sturer auf Beantwortung meiner Gegenfragen bestehen):

    ErfinderDesRades schrieb:

    1. ist dir der Sinn von Prefixen inne Namensgebung klar?
    2. Warum hat dein Projekt den Prefix "frm"?
    3. Warum sollte ein Projekt überhaupt jemals einen Prefix haben?
    Diese Fragen bedeuten den Vorschlag, dass du drüber nachdenkst, und sie beantwortest - nicht, dass du hastig und blindlings iwas in deiner Solution ummodelst.
    ist dir der Sinn von Prefixen inne Namensgebung klar?
    Jap...Präfixe sind, wie es mir beigebracht wurde, dazu da, um Themen/Objekte/Whatever einordnen/zuordnen zu können und die Übersichtlichkeit zu verbessern...
    Warum hat dein Projekt den Prefix "frm"?
    Weils n versehen war :o
    Warum sollte ein Projekt überhaupt jemals einen Prefix haben?
    ehrlich? mMn garnicht...
    Prima!
    Seh ich im G+G auch so.

    Das mit dem Projekt-Prefix ist bisserl problematisch, denn im ProjektExplorer wird der Dateiname der vbproj-Datei als Projekt angezeigt, der üblicherweise mit dem Rootnamespace des Projekts übereinstimmt.
    Du aber hast wohl nur den Dateinamen geändert, und Rootnamespace ist weiterhin "frmMyStudentsControl" und führt zum Namenskonflikt.
    Den Rootnamespace kannste im Anwendungs-Reiter der Projekteigenschaften korrigieren.

    Oder du machst einfach ganz ein neues Projekt, und diesmal von vornherein mit Form-Prefix und ohne Projekt-Prefix, und hofflich gut ist. Ist gelegentlich problematisch, mit was weiterzumachen, wenns einmal so gründlich verdaddelt war.
    Für UserControls nutze ich übrigens gern als prefix "ucl".
    Waaa ich raffs nicht!

    Die DB-Programmierung OHNE DB ist an sich ne lustige Sache...allerdings für die jetzigen Zwecke ungeeignet...

    MySQL-DBs hab ich auf meinem All-inkl noch genügend, werde jetzt aber erstmal meinen lokalen MySql-server nehmen und dort eine Datenbank nutzen.

    Soweit sogut...
    ich habs geschafft eine Verbindung zur Datenbank zu erstellen...

    VB.NET-Quellcode

    1. Public Module dbconnection
    2. Public cmd As New MySqlCommand 'Neues MySQL Commando
    3. Public con As New MySqlConnection ' Neue Verbindung zur Datenbank
    4. Dim myConnectionString As String
    5. Public Sub Verbinden()
    6. myConnectionString = "server=localhost;" _
    7. & "uid=root;" _
    8. & "port=3307;" _
    9. & "pwd=test123;" _
    10. & "database=userdb;"
    11. Try
    12. con.ConnectionString = myConnectionString
    13. con.Open()
    14. 'MsgBox("Verbindung hergestellt")
    15. Catch ex As MySql.Data.MySqlClient.MySqlException
    16. MessageBox.Show(ex.Message)
    17. End Try
    18. End Sub
    19. End Module


    Alles als Modul ausgelagert, dass ich mir das ewige getippse erspare und nurnoch Verbinden() einbinde...

    Aber was bringt das verbinden, wenn ich gerade zu blöd bin in die DB zu schreiben :/

    Ich brauch n Anreiz wie ich an die lösung ran komm...:
    Ein Formular mit 4 Textboxen...
    Wenn auf Absenden geklickt wird, soll alles davon in die DB geschrieben werden (5 Spalten -> Id (AutoInc) + spalten für Txtbox1-4.text)

    wie setz ich das um? ich bin grad absolut planlos :/
    zunächst: mach den TryCatch weg.
    Du stehst am Anfang der Entwicklung, und da brauchst du die Exceptions, um die Fehler zu beheben. Fehler behandeln kannst du in diesem Stadium noch überhaupt nicht.
    TryCatch ist ein heißes Eisen

    Dann ist eine Connection zu öffnen ja noch kilometer entfernt von "mit der DB zu kommunizieren".
    Was man dafür braucht sind richtig konfigurierte DataAdapter (und da sind die Connections gleich mit drinne).

    Das einfachste für Anfänger ist die Vorgehensweise von "Datenbank in 10 Minuten" auf Movie-Tuts - da bekommst du sog. typisierte TableAdapter hingeneriert.
    Nur failt das oft, grad im (nicht-) zusammenspiel mit mySql.

    letztlich das Einfachste sind die DBExtensions - die generieren intern untypisierte DataAdapter, was dich aber garnet interessieren braucht, denn du musst nur schreiben:

    VB.NET-Quellcode

    1. myTypedDataset.Fill()
    2. 'oder
    3. myTypedDataset.Save(Form)
    und die DBExtensions wissen, was zu tun ist.
    Der Flashplayer sagt ich soll immer mit durchklicksen...^^

    Die DBExtensions raff ich gerade irgendwie nicht...(Kopfschmerzen + zahnschmerzen + prograqmmieren lernen = nicht so gut-.-)

    Da ich die Datenbank in VirtualStudio nicht als Datenquelle/Datenbankservr einbinden kann muss ich das alles bissl manuell machen...also connectionstring, etc...(doofe 2013er version!)

    Ich hab ne verbindung zum DB-Server, zum DBMS, aber weiter "rein" komm ich nicht...-.-

    Bei SELECT * FROM-Statement bekomm ich immer FALSE zurück...