wie kann ich eine eindeutige ID generieren?

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von sweeneytodd.

    wie kann ich eine eindeutige ID generieren?

    Ich mache ein Experiment und habe dazu ein Programm geschrieben, das verschiedene Aufgaben darstellt.
    Zielgruppe sind Schüler, wobei das Programm von einem USB-Stick aus läuft, dass im jeweiligen Computerraum der Schule in einem der Computer steckt (also für jeden Schüler einer).
    ich möchte jetzt in meinem Datensatz für jeden Schüler eine einzigartige ID erstellen, wobei sicher gestellt wird, dass wirklich jeder Schüler eine andere Nummer (oder was auch immer) bekommt. Das sollte so sein, damit ich die Daten hinterher auseinander halten kann, wenn ich sie zusammenfüge und soll vermeiden, dass ich per Hand für jeden Schüler eine Nummer in meine Excel-Tabelle eintippe.
    Da bräuchte ich mal einen Denkanstoß, wie ich das am besten mache. Bis jetzt benutze ich "Datetime.Now" ausgelöst beim Programmstart, was sicherlich ganz okay funktioniert. Aber, auch wenn die Wahrscheinlichkeit sehr gering ist, bleibt doch die theoretische Möglichkeit, dass zwei Schüler das Programm zum exakt gleichen Zeitpunkt starten. Jetzt habe ich oberflächilch mitbekommen, dass man sowas wie die CPU-ID oder die Seriennummer der Festplatte auslesen kann. die Frage ist, ob das eine bessere Lösung darstellen könnte und warum?

    Wäre dankbar für einen Denkanstoß :)
    Zufällige Zeichenfolge generieren? Sagen wir mal 6 Zeichen lang, Groß- und Kleinbuchstaben und Zahlen sollten fürs erste locker ausreichen. Außerdem wäre eine Prüfung, ob es diese ID nicht schon gibt, von Vorteil. Dann kannst du immer noch eine neue generieren.

    Irgendwelche Computereigenschaften zu nehmen wäre eher kontraproduktiv, da (zumindest bei uns) nicht jeder Schüler einen Computer hat. Damit würdest du höchstens nach Computer teilen. Accountsystem ftw.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Computername + Datetime?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Wenn er bislang auch einen Zeitstempel benutzt... und da NUR Angst hat dass zweie zur gleichen Sekunde das Tool starten (wie ja im Post steht...)... Langt doch den Computernamen oder einfach Benutzernamen auszulesen und davor zu klatschen.

    Sprich:

    VB.NET-Quellcode

    1. Environment.UserName.ToString & "_"c & Date.Now.ToString
    oder so!?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    VB.NET-Quellcode

    1. Dim id As String
    2. Dim Startdate As DateTime = #1/1/1970#
    3. Dim Spanne As TimeSpan
    4. Spanne = DateTime.Now.Subtract(Startdate)
    5. id = CType(Math.Abs(Spanne.TotalSeconds()), Integer) & "" & Int(99999 * Rnd()) + 1111
    6. Label1.Text = id