Programmerstellung - wie geht man das Projekt am besten an?

  • VB.NET

Es gibt 385 Antworten in diesem Thema. Der letzte Beitrag () ist von stevez.

    Programmerstellung - wie geht man das Projekt am besten an?

    Hallo,

    ich mache gerade ein Praktikum (Software-Pharmaunternehmen in der Qualitätssicherung) und betreue u.a. Tests, welche bei neuen Programmversionen von Warenwirtschaftssystemen gemacht werden. Daher bin mit folgender Aufgabe konfrontiert:

    Programm schreiben, welches:
    - Versionsnummern aus einer Datenbank liest und zur Auswahl gibt
    - Möglichkeiten zum Hinzufügen und Löschen von Versionen
    - Nach der Auswahl der Version eine Auswahl von bestimmten Testszenarien (Liste zum Anklicken o.ä.)
    - Tests starten (über das Programm ein Script starten)
    - Testergebnisse (liegen dann in XML oder HTML vor) auslesen und in der Datenbank speichern
    - Testauswertung:
    * Welche Tests liefen noch nicht bei welcher Version
    * Liste aller Fehler bei jeder Version + Beschreibung + Datum etc
    * Löschen von Fehlern (am Besten automatisch mit Hinweis z.B.)

    Das wäre erstmal alles. Wie gehe ich das am Besten an? Habe mir überlegt, es mit Visual Basic oder Visual C# graphisch zu programmieren und eine Access-Datenbank einzubinden, aber treffe auf massig Probleme. Was wäre denn der "beste" bzw. "empfehlenswerteste" Weg?

    Für Antworten bin ich sehr dankbar,

    LG, Steffen
    ok, da hab ich mich jetzt mal dran gesetzt - habe gerade eine kleine SQL-Frage: Wie bekomme ich die Tabellenzeile heraus, wenn ich nur einen String eines Feldes habe (hier: Versionsnummer)

    Tabelle:

    ID version
    0 72.0.2.5
    1 72.0.3.3
    2 72.0.3.4
    3 ...

    mein momentaner code ist angehängt (ist total deformiert, wenn ich ihn mit [v b] hier rein schreibe..)
    Dateien

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „stevez“ ()

    stevez schrieb:

    mein momentaner code ist angehängt (ist total deformiert, wenn ich ihn mit [v b] hier rein schreibe..)

    Bitte VB-Tag benutzen - aber richtig




    Achso, und: vergiß Sql (erstmal). Ado.Net kapselt die DB-Zugriffe in großem Umfang ab, sodaß du dich mit SqlCommands, DBParametern, Datareadern und Konvertierungen nicht auseinanderzusetzen brauchst.
    Lerne lieber Databinding, weil das braucht man immer, und ganz besonders inne Datenbänkerei.

    Gugge DB-Programmierung ohne Datenbank

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

    Mit dem Databinding habe ich mich leider bisher noch nie auseinander gesetzt.. es müsste doch auch mit einer externen .mdb-Datei funktionieren? Hinzufügen etc funktioniert ja, nur wie lösche ich eine bestimmte Zeile, von der ich nur einen Zelleninhalt kenne?

    Tabelle "XTversionen"
    ID version
    1 321.4.3
    2 23.14.4
    34 22.234.3
    36 22.33.44

    -> jetzt ist Version 22.234.3 in einer Combobox ausgewählt, die ganzen Daten stehen im Dataset "DSversions".

    Q1: wie bekomme ich die Zeile raus (hier: 2), in der die Version steht?
    Q2: wie kann ich sie dann gezielt löschen? Mit

    VB.NET-Quellcode

    1. ds.Tables("XTversionen").Rows(0).Delete()

    funktioniert es leider irgendwie nicht..

    EDIT: bin ein bisschen weiter und habe bei folgendem Code in Zeile 2 jetzt den Fehler "Für ein Update ist ein gültiger DeleteCommand erforderlich, wenn eine DataRow-Auflistung mit gelöschten Zeilen weitergegeben wird."

    VB.NET-Quellcode

    1. ds.Tables("XTversionen").Rows(0).Delete()
    2. da.Update(ds, "XTversionen")
    3. 'updates
    4. MaxRows = ds.Tables("XTversionen").Rows.Count
    5. update_cbx()

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

    stevez schrieb:

    Mit dem Databinding habe ich mich leider bisher noch nie auseinander gesetzt.. es müsste doch auch mit einer externen .mdb-Datei funktionieren?
    natürlich funzt Databinding auch mit einer externen .mdb-Datei.
    Dem Databinding ist ja egal, wie das typisierte Dataset befüllt wurde.
    Nur ohne typDataset zu arbeiten ist Crap
    tu ich doch.
    Ich empfehle dir eine sinnvolle Reihenfolge der Lernschritte. Beharrst du darauf, unbedingt den zweiten Schritt vor dem ersten zu machen, so trittst du beständig in die Sch....

    Auch würde es mir erheblich Mühe bereiten, deinen Ansatz fortzuführen, weiler Murx ist, und ich mich in Murx immer nur soweit einarbeite, bis ich erkenne, dasses Murx ist. Also Murx entwickel ich kaum jemals bis zum Ende.
    zu 1: genau.


    zu 2: c# ist eigentlich die ein bischen schönere Sprache, habich mal wieder festgestellt :(

    Aber für VB gibts ein kostenloses Buch, was an Qualität alles mir ansonsten untergekommene in den Schatten stellt: dieses Buch Lesen (die 2005er - Version)
    Das ist für mich der entscheidende Grund, vb.net zu empfehlen. (Ein späterer Umstieg ist ganz unproblematisch, wenn man vb richtig gelernt hat)

    VB.NET-Quellcode

    1. Dim myXMLfile As String = "D:\xtTestsDB.xml"
    2. Dim ds As New DataSet()
    3. ' Create new FileStream with which to read the schema.
    4. Dim fsReadXml As New System.IO.FileStream(myXMLfile, System.IO.File.Open)
    5. Try
    6. ds.ReadXml(fsReadXml)
    7. DataGrid1.DataSource = ds
    8. DataGrid1.DataMember = "Cust"
    9. Catch ex As Exception
    10. MessageBox.Show(ex.ToString())
    11. Finally
    12. fsReadXml.Close()
    13. End Try


    -> Fehler in Zeile 4: Fehler bei Überladungsauflösung ...
    Du magst es kompliziert, was? ;)

    VB.NET-Quellcode

    1. Dim myXMLfile As String = "D:\xtTestsDB.xml"
    2. Dim ds As New DataSet()
    3. ds.ReadXml(myXMLfile)


    Aber mach dir keine Sorgen: es wird noch kompliziert genug ;)


    keinen TryCatch - dafür ist noch monate zu früh, bzw. auch für immer zu früh, denn TryCatchens haben inne frühe EntwicklungsPhase nix verloren.
    Die Release wird u.U. ja aus einer DB befüllt, also eh ganz anners.
    gugge TryCatch ist ein heißes Eisen


    Und jetzt mach bitte das Tut "DatasetOnly" auf Movie-Tuts durch, denn dein Code verwendet ein untypisiertes Dataset, und dassis Crap
    super, das hat mir sehr geholfen!

    Noch eine weitere Frage: wie kann ich eine Zeile in das DataSet manuell via Textbox hinzufügen?

    VB.NET-Quellcode

    1. Dim XT_DataSet_NewRow As DataRow
    2. XT_DataSet_NewRow = XT_DataSet.Tables("XT_DataSet").NewRow()
    3. XT_DataSet_NewRow.Item("versionsnr") = txt_NewVersion.Text
    4. XT_DataSet.Tables("Versionen").Rows.Add(XT_DataSet_NewRow)
    5. XT_DataSet.WriteXml(allgem._DataFile)
    Bilder
    • Unbenannt.JPG

      61,53 kB, 1.096×244, 261 mal angesehen
    da Fehlt das New for DataRow:

    VB.NET-Quellcode

    1. Dim XT_DataSet_NewRow As New DataRow
    2. XT_DataSet_NewRow = XT_DataSet.Tables("XT_DataSet").NewRow()
    3. XT_DataSet_NewRow.Item("versionsnr") = txt_NewVersion.Text
    4. XT_DataSet.Tables("Versionen").Rows.Add(XT_DataSet_NewRow)
    5. XT_DataSet.WriteXml(allgem._DataFile)
    Du hast jetzt ein typisiertes Dataset, da fummelt man nicht mehr mit StringSchlüsseln herum.

    VB.NET-Quellcode

    1. dim rwXT As XT_TableRow = Xt_Dataset.XT_Table.NewXT_TableRow()

    Bischen problematisch, dassich die TabellenNamen deines Datasets nicht kenne - ich habe mal angenommen, es sei eine Tabelle "XT_Table" vorhanden.

    Hingegn dein Versuch

    VB.NET-Quellcode

    1. XT_DataSet_NewRow = XT_DataSet.Tables("XT_DataSet").NewRow()
    zeigt eindeutig, dass in deim Dataset die Tabelle "XT_DataSet" nicht vorhanden ist.
    mach einen Screenshot von deim typisierten DAtaset, und ich weiß, wie die generierten Datentypen und MethodenNamen alle heißen.


    nochwas - Benamung.

    Benamung ist immer wichtig, und in der Datenbänkerei gehört erschossen, wer seinen Tabellen so idiotische Namen wie "XT_Table" gibt.
    "XT_DataSet" als Tabellenname ist nochmal schlimmer (also Kreuzigung wäre angemessen), denn es ist kein DataSet, und es nun "DataSet" zu benennen, ...

    Eine Tabelle repräsentiert etwas, und so soll sie auch heißen. Eine Tabelle, die Personen repräsentiert, soll "Person" heißen, und eine Tabelle, die Mitarbeiter repräsentiert, heiße "Employee" und so weiter.


    Gelöschter Benutzer schrieb:

    da Fehlt das New for DataRow:
    nein, das ist das letzte, was da fehlen würde.
    ist eigentlich alles so benannt, wie es soll - kann sein, dass ich beim code mit den bezeichnungen etwas hin und her gerutscht bin ;) ich probiers gleich mal aus!
    Bilder
    • Unbenannt.JPG

      11,8 kB, 170×304, 224 mal angesehen
    • Unbenannt.JPG

      8,43 kB, 163×196, 1.975 mal angesehen

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

    geh in die Dataset.Designer.vb.
    lösche die komplett
    geh in den Dataset-designer, und zieh ieine Tabelle ein stück herum.

    manchmal spinnt der Dataset-designer-generator, und muß animiert werden, nochmal neu zu generieren.

    zum thema 1000 fehler: Backup machen - eine hilfe kann sein: SolutionExplorer